They're relying on the fact that not everyone maxes out their CPU usage all the time.
Context switching is less of a problem when you consider that the L1 and L2 caches of the CPU(s) are also shared amongst the 100+ VMs running on it.
If you're running something that is CPU intensive, or sensitive to something else taking over the cache, then running in a VM can be painful especially when you're not in control of what else is running on that server.