Why doesn't MIPS allow us to use float immediate?
All instruction set design is a complex multi-way trade-off, and most instruction sets also grow over time. Don't fall into the trap of thinking the design decisions made for an instruction set are necessarily optimal. 

Using fixed-size instructions reduces the complexity of the instruction decoder, but it inevitably ends up restricting the size of immediate operands. Your operands must be smaller than your instructions and the more bits you give over to the immediate operand the less bits you have for encoding other things.

In particular if your instruction size is the same as your data size (common on 32-bit risc architectures like MIPs and ARM) you can't have a full-sized immediate operand.

Small integers come up a lot, so it is worth dedicating instruction encoding space to them. You will probably find if you replace your immediate value with a random 32-bit number that you either get an assembler error or the assembler treats it as a pseudo-instruction and converts it to multiple instructions.

With floating point numbers the benefits are far more questionable, it's much harder to come up with a useful subset, likely harder to turn that useful subset back into full-size floating point numbers, and floating point math in general is/was slower than integer math, so there is less pressure to optimise instruction count or avoid reading a value from memory.