world of warcraft works like this but why doesn't overwatch?
you queue for the role that you want to play and you get put with other teammates that are structurally sound
I guess the difference is that World of Warcraft has a sort of 'set meta' where you're always taking some number of healers, tanks, and DPS. Overwatch is more of a mixed bag. If the game just starts assuming a meta, and then a balance change happens and the community realizes "Well hey, this setup is actually better", it would likely become even more frustrating. You'll have an extra DPS or something refusing to go tank or something when it's needed because "i role queued!"
Now, it would at least be nice to let you select which heroes you don't want to play as, and then attempt to match you into a loosely balanced team in which everyone can pick a hero they want to play.