Here's a simple reason for why client-side cheat detection is necessary:
Suppose we have a competitive game where the goal is to click on a target quickly. Most online shooters have this property.
A cheat can always do this at least as fast as the best players in the world can.
Without client-side cheat detection, you will not be able to detect, on the server side, whether or not the commands sent from the client are coming from a cheat, of a world champion player.
Yes, client-side detection isn't perfect. But in security, perfect is unattainable.