Why do cryptographic hashes need to be fixed length?
They don't, and in fact the sponge construction used in Keccak (SHA-3) allows for variable length output. 

In other hashes the Merkle-Damgård construction was used which has a fixed output length due to the nature of its design. But there is no reason to not allow for variable output length other than ease of development or use.