Because what do you think matters more in an online game:
A. Smooth and consistent client experience, where bullets hit what you aim at (client-side prediction) where aimbots and wallhacks work.
B. Jittery/laggy client experience, where aimbots still work, but wallhacks are disabled?
You can only choose one option.
Generally, everyone agrees "A" is the best option and cheaters will be dealt with at game time. It's annoying, but that's the cost of online video games.
Also even if it worked perfectly, there'd still be other practical ways to cheat. In a way it's better to detect cheats than prevent them, because you waste a lot more of their time sticking them into a pool of cheaters and can also undo it. Though afaik Counterstrike tells you when you're low-trust.
C. give everyone wall hack and aimbot.
It isn't an unsolvable problem though, there's only jitter because the implementation isn't very good
Implementing a more conservative anti wallhack cheat where player positions start streaming in slightly earlier still significantly cuts down on the efficacy of wallhacking, while entirely avoiding the jitter problem. Characters in CSGO move at a fixed speed, so you can calculate exactly how many ticks in advance you need to start sending that data in, before they will become visible to another client around a corner - and add a margin
There's also no excuse for sending player positions through a smoke for example - the server should be performing visibility culling
With the two combined you could cut the utility of wallhacks by 80%, in a way that would be completely unnoticeable. The real reason that this has never happened is that valve's investment into anticheat has always been pretty minimal compared to what's necessary for it to be effective (VAC has generally been the least effective anticheat). They're a small company which largely develops steam as a platform, not VAC or anticheat solutions for games