Flex mains outnumber one-tricks significantly, probably by 1-2 orders of magnitude, making them very common, and the one-tricks they encounter few, but not rare; probably no more than 0-2 one-tricks exist in a typical 6v6 match.
A one-trick’s strength lies in the one hero they play. Their skill alone would land them at a higher elo if they were only not held back by forced losses caused by hard counters… which succeed because their own teammates refused to enable them appropriately by focusing and/or countering the one-trick’s hard counters on the enemy team. One-tricks need an appropriate synergizing team to be built around them and to work with them. If they swap to any other hero, they will function like worthless meat bags at best.
The problem with one-tricks is when two or more that play the same hero, or they play anti-synergizing heroes, and land together on the same team. It’s bad luck and it sucks, but thankfully rare, so when it happens, the team has to accept being dealt a bad hand of cards and take the loss.
Flex mains play a wide variety of heroes, and their biggest strength is dynamically swapping to the most appropriate hero for the situation. Their skill is spread out over a number of heroes, meaning their skill mastery on each is average for the elo they are in. Placed fairly with equally-skilled flex teammates against the same equally-skilled flex enemies, their odds of winning would be 50/50 (this isn’t rocket science, it should be obvious and expected). Placed with the same flex teammates against an enemy saddled with even a single genuinely weaker player (or a thrower), and their odds of winning improve; just as being saddled with a single genuinely weaker teammate against enemies of uniform skill hurts their odds of winning. Conversely, a uniform team of flex players placed against an enemy being carried by even a single strong player hurts their odds of winning; just as being carried by a single strong teammate against enemies of uniform skill improves their odds of winning. (Again: all of which is commonly understood and expected.)
The problem with flex players is when one or more assume a one-trick player on their team is simply a generally weak player or purposely throwing, and in response, just give up, play poorly, play unintelligently, or worse: throw a raging fit and harass the one-trick instead of working with them, saddling their team even more. Flex players with loser mindsets are the types that give up and report one-tricks. They sometimes like to make forum threads whining about how much they think one-tricks ruin their games, often demanding the devs ban or punish them in some way, just for existing.
Smart flex players? They recognize a min-max opportunity when they are dealt a hand with a one-trick, and so play their own best strength by flexing accordingly to enable their one trick to carry them to an easy victory.