In a game like Overwatch, this is exactly what poor teamwork is. Blizzard refuses to own up to creating a match environment that requires carefully chosen classes. People don't want to play those specific character so do whatever they want. I'm going to (or used to) report them. I care less about off-meta but if someone picks attack Torb and is ineffectual as them, asking them to switch isn't unreasonable. And if they refuse to switch, reporting them isn't unreasonable.
There is 1 very easy fix for this, have the report system block that player. If I'm reporting someone for poor sportsmanship or bad teamwork, I don't want to play with them anymore... period... they shouldn't show up in my games ever after that point. But that's not how the system works.
At the end of the day this is Blizz's fault, they created the game, created the atmosphere in which to succeed in the game, but refuse to enforce the way the game is designed to be played. Imagine being banned because someone queued as healer in WoW, but played DPS, and you reported them. Is the excuse they threw up a heal every 20 seconds matter? But that's off-meta though right, healing as a shadow priest.