Yep, that is one good point in favour of fixed-point arithmetic: if you know the range and resolution of your numbers, you don't need float. And if you don't know your numbers, what the heck are you doing?
But these days not all DSP code is written by professionals for serious applications. Hobbyists usually want a more playful, interactive approach: just try it and see what happens. That is easier with float, especially as most programming languages do not support fixed-point math, so that the source will be filled with bit-shifting and other trivialities that distract from what the code is actually supposed to do.
Another point is the lower resolution: with integer you have 32 bits of resolution (but you have to always remember where the decimal point is), with float it is only 24, because the other 8 bits are used to keep track of the decimal point during runtime. A lazy programmer makes more work for the processor.
Also, with a multitasking OS all processor registers have to be saved and restored at each context switch. The FPU has a lot of registers, so using the FPU would add a lot of overhead. The only way around that would be if only one process was allowed to use the FPU. Then the FPU registers would belong to this one process alone, so there would be no need to save and restore them. AFAIK the OS does not support this (it would need some support from the compiler too).