-Does the matchmaking get any better at higher levels or in ranked games?
If you're talking about composition-wise in quick match then no. The post by Alavard is the details on how a group is made up in QM.
If you're talking about better or more even games, that depends on your definition of "higher levels".
If you stray past about 3200 MMR (into Master league, top players in the game), you're gonna be in for some bad times right now. There's not enough players above that MMR level to make a good game so the game attempts to average MMR out across both teams...so you might get two 3200's with three 1700's (2300 MMR average) while the enemy might get 3 2800's with two 2000's (2480 MMR average). The enemy team are all within range of each other's skill level more or less, but the 3200 is playing with basically new players and will have a frustrating time herding cats.
If you play below about 2200 MMR (like 80% of all players are in this subset) your games will be fine until it all clicks for you...and then once you recognize all the mistakes from others you'll not be happy there either. The MMR ranges here too can be all over the place, but for the most part anyone under 2000 MMR is indistinguishable from another unless they are horrifically bad or brand new to the game and just building their MMR.
If you're in the sweet spot between like 2200 MMR to about 3200 MMR (ideally about 2600-3100 seems to be the best from my experience) the games are usually a lot more reasonable with MMR averages as most of the players are closer together in range. Basically you're just high enough where everyone knows what they are doing, but low enough so that the pool of players available to you isn't vastly diminished.
Sometimes we don't have a tank and 3 healers other times it's 4 assassins and a support it seems a bit fucked up.
You should never have 3 support unless you are in a group who queues with 3 support, though. It's not allowed in the matchmaking variables unless you're hitting the 10 minute queue and it goes YOLO.