How does a continuous rotation servo control speed ?

A normal servo moves the servo arm until the potentiometer attached to the servo arm gives a reading that tells the servo that the arm is at the appropriate angle. When a new command is received if the arm is a long way from the correct position it will get the motor to move the arm as quickly as possible. As it gets nearer the correct position it will slow down so as not to overshoot.

In a continuous rotation servo the potentiometer is replaced by a pair of resistors effectively giving the impression that the potentiometer is always at its mid point. When you give it a command to go to (say) 150° the servo electronics thinks it is a long way from the correct position so it gets the motor to move quickly. Because the resistors are fixed the servo cannot actually get to the destination so it keeps going at a speed determined by the size of what it thinks is the position error. When you tell it to go to 90° (or so) it thinks it is at the correct position so it stops.

Using servo.writeMicroseconds() will give you finer control.

...R