I'm uncertain about its compatibility with ROS and the Dynamixel communication protocol.
PWM servos have a very basic hardware interface. If you're using a laptop or desktop computer for ROS, you will need some kind of intermediate board that produces PWM signals and has a ROS-compatible communications interface.
If you're using a single-board computer with richer hardware I/O like a Raspberry Pi, you might have PWM devices you can command, and you might be able to find some ROS packages to control those PWM channels, or you can learn to control them from your own nodes.
The Dynamixel Protocol on the other hand is a binary packet protocol that is transmitted to the and from the computer using a serial port/UART interface. This is a much higher-level and much more full-featured interface that allows you to read many data values and write many types of command to the Dynamixels.
To do anything similar with a PWM servo, you would have to add a special purpose PWM controller that can accept those Dynamixel Protocol commands over a UART interface. This would typically involve another microcontroller in the system.
It will also not provide the same kind of data feedback that you can get with the Dynamixel and its communications interface.
Furthermore, Robotis provides ROS and ROS 2 software interfaces.
You can find alternatives to all of these things, but every component in the system is very different from the way the Dynamixels work.
Is there an alternative to the USB-to-Dynamixel Adapter that is compatible with the MG996R servo?
You should be able to find hardware that plays a similar role in a basic way. Look for USB-to-PWM adapters. The PCA9685 chip is something I've used before and is commonly used for this, and searching for USB converters that use that chip may help you find USB adapters. Here's one example I found:
https://opencircuit.shop/product/usb-16-channel-pwm-servo-motor-driver
It's unlikely to find something that would translate position commands in Dynamixel packet protocol to PWM signals, plus existing ROS drivers for the Dynamixels may assume feedback from the servos over the packet protocol.
I have not personally used a Dynamixel with ROS yet, but often a ROS driver will read back the position and/or velocity, possibly the torque of an actuator that has such capability and use that information as part of the software controller operation. That cannot be done with a PWM servo, so the driver will probably not work right.
Some people will physically modify a PWM servo with a fourth wire to read the voltage on the internal position potentiometer and convert that to an angle reading, but that would be an entirely custom hardware project, and then you would need a custom microcontroller and firmware project to make that work like a Dynamixel.
Basically, you would be building your own Dynamixel-compatible smart servo if you were doing that.
I've heard people use the terms "bus servo" and "smart servo" to refer to the general category of Dynamixel-type servos with higher-level command interfaces.
You might use those search terms to find alternatives that are more available and more affordable where you live.