Spot instances come from both leftover on-demand instances as well as unused reserved instances. So it's quite possible to run out of on-demand and still have a low spot price.
Many people aren't set up to handle spot instances. You need to be much more resilient to single instance failures than when using on-demand or reserved instances.