From Freescale/NXP's site and the parameter lists, that one should have an FPU.
But what were you using to "detect" the FPU? If you were asking the Macintosh's operating system (mainly in the ROM but also assembled from that and code from the boot disk) then it doesn't *EXPECT* that model to have an FPU, so based on the computer model it would probably default to saying "no FPU here".
Does the 040 have a DFP (Disable Floating Point) bit in the PCR like the 060 does? That may be getting set by the OS.
If you have an FPU then the OS has to save the FPU registers on a context switch to any code that might want to use an FPU instruction (or have it emulated like the Mac does). That version of the OS probably doesn't have that code build into it (or enabled), so probably can't work with an enabled FPU anyway. You may only be able to use it when running a different OS like Linux or something.
Tom