It has never made sense to me why you can't knock out a Pokemon before catching it. Surely it's easiest to catch when it has no health and literally cannot fight back. I understand from their point of view it would make the game a lot easier, but if they're doing this for legendary Pokemon, why not for everything else?
From a gameplay perspective, it makes catching things far more difficult and thus interesting.
From a lore perspective, we can see from what happens when you KO a legendary Pokemon that after they're beaten they flee. Presumably the same thing happens for standard wilds - they take enough damage that they decide to cut and run instead of sticking around to fight.