Sure, it's hard to spot a toggleable aimbot/wallhack. And of course I've seen people who looked suspicious. But a lot of times (when I was sure that guy hacks) I checked the replay and found out everything seemed legit (UAV up, teammate spotted enemy and could have told him, etc.). For some guys I was pretty sure they were hacking (and someone with a VAC ban kinda lost all credibility) but it wasn't 100% provable even with the replay. So how should an admin detect in realtime if someone hacks? You know yourself how often people get reported, just imagine half of those people actually get kicked. It would totally suck.
I really think there are not as much hackers as you think. A lot of people are really good and BO2s crappy netcode adds to the feeling of getting cheated on. In league we on matches vs. Rank1 Masters, and then lost against some random gold,silver team, just because of Lag-Comp differences.
Of course there is a significant number of cheaters, but you can't really do anything about them, even with dedicated servers, unless you want to ruin the game for every good player. In that case we'd have to rent a server ourselves I guess (which wouldn't be that bad )