Found this pretty good comment while bored at work, a very well thought out post
Many reasons, paying for heroes mean you can't have unique heroes. If only Pharah is decent at countering Widowmaker then anyone without Pharah is at a disadvantage. So instead of making heroes that have proper hard counterpicks, they have to be homogenised so no matter what heroes you have, you're not at a disadvantage. That's why Dota heroes are always so much more interesting and seem so much more overpowered than LoL champions. They're not really OP, they just have counter picks to keep them in check. Enigma's 5 second AoE channelled stun? Yeah, a simple targeted stun and it's useless. Burst damage that can kill a hero in less than a second? BKB, dealt with. Heroes behind paywalls screws with game balance and forces characters to be boring.
Second reason is it encourages the devs to make each new hero OP for a week or two to incentivise purchases. Again, paywalls screw with the game balance.
Thirdly it encourages rushing out characters whether they're ready or not or whether the game is ready for them. A dev isn't going to wait a month between releases when they can wait a week for the money and cause anyone that's not a hardcore player to spend money because they won't have enough ingame currency for it. Causes lower quality characters and, again, screws with the balance.
Fourthly the game becomes based around microtransactions. Well sure, you could grind for hours a day to get the next hero or you could just pay $5 a fortnight to stay up to date with heroes in this "free" game. Again, paywalls screw with balance.
Tl;dr: IT SCREWS WITH THE BALANCE OF THE GAME