Since you asked about other devices too. Most new hobby speed controllers on the market can take a regular servo signal 1-2ms, 50hz. Or a 1000us-1900us 500hz pulse or a 125-250us 500hz signal. Or a 5-25us up to 32khz pulse. There are other protocols too. Analogwrite works nicely if you use a 500hz pin and a range of 125-225 ( 1000-1800us) but you lose resolution.
It's all PWM.
I noticed the standard 50hz PWM is actually disabled by default on the latest blheli (most popular for multirotors) firmware versions so we can expect people asking why the servo library doesn't work with their esc's.