Because McCree can instantly stun and kill you while Mei at least gives you some time to respond if you're a certain hero. McFlashbang? The only heroes mobile enough to survive the initial burst and evade him are D. Va and Winston, both of which fall to a ranged poke, assuming you're the only one doing damage to them.
The design ethos behind Mei is completely different from that of McCree. But rather than being difficult to contend with in a 1v1 like Mei, McCree can literally win all of those battles as long as he engages with a cool head.
Tanks? Fan-flash-roll-fan. Anyone else? Flash-fan. It's brainless and stops the game's pacing when a McCree rolls in from out of nowhere, stuns you from a stupidly long range, rolls in, and fans you down. All he needs to do is wait on a brief flashbang cooldown, and he can do it again. And again. And again.
Not to mention McCree's ultimate locks down an area for six seconds, and he can cancel it for 50% charge. Additionally, he's actually really strong at midrange combat; so strong, in fact, that with good accuracy, you can put down 200HP heroes down with a bodyshot and a headshot (not that most McCree players realize this, because they're so busy cheesing his dominant strategy).
The fact that he's so dominant at a range and up-close, in addition to his very forgiving ult (compared to pretty much every other ult in the game) is why he's so popular in competitive Overwatch. He's got a pickrate of approximately 120%, meaning he's present on every team, and often picked twice, because he's just that good.