People tend to confuse their 'skill level' with rank, often in both directions.
When you're at 'your skill level', it means you're at an MMR where you win 50% of the time on average. So if a silver ranked player is at an MMR where they're playing with plats, then they either had a lucky streak and they'll quickly fall down, or thats their actual skill and they'll win 50% (in which case they'll still quickly climb due to lp gains), or they belong even higher and their MMR will continue to rise and their rank will soon follow. Skipping ranks is also a thing that makes sense when players are demonstrating they can consistently beat higher ranked players, but a system where players are forced to only play people at their rank wouldn't be able to show they deserve to entirely skip divisions.
If someone was winning enough to be playing with/against plats while ranked silver, it wouldn't really be fair to legitimate silver players to have the plat skill player stomp them a half dozen times in a row before they could be promoted, with that repeating for every division up to their 'true' rank. Alternatively, if they kept mmr in the background but still forced same rank match ups, match times would go way up for relatively high mmr for their rank players, and whats more they'd end up playing against each other, ending up with a 50% win rate in silver despite their plat skill level.
People should want competitive games too, and while it might be fun for a high skill player to stomp on lower skilled players at first, it'd become a bit of a chore to climb to your true elo after awhile, so the adversity of actually playing against (and with) people your level should be desirable. Ranks are pretty much entirely cosmetic, and even the end of season rewards are more cosmetic things, so people should be playing since they enjoy playing, and it's more enjoyable for everyone if things are relatively fair.
Also, theres plenty of people (generally smurfs) who will dodge a lot to intentionally keep low ranks due to the LP penalties. In an MMR based system this doesn't actually cause any problems, but in a rank based system it could rapidly lead to some very lopsided matches as the high elo player on their bronze ranked account destroys the legit bronze, and does so over and over and over without ever being promoted.
On the other side of things, if a silver rank player is getting consistently matched with bronze, that implies they're actually bronze skill level, not "wtf matchmaking is unfair I keep getting matched with people worse than me" as people sometimes say, much as the silver being consistently matched with golds isn't being matched with people better than them, they're being matched with people theoretically their skill level. If they maintain a 50% win rate, then their rank will catch up over enough games, and if they don't play enough games for their rank to catch up, then they're not really that invested in the game in the first place so their rank shouldn't matter anyway.
edit: Basically the system works well, but people tend to be confused about their own skill levels, so get frustrated. People want to 'play with people their skill level' but they also don't want to lose, so you end up with a situation where people are playing at their skill level, but in the 50% of the games they lose they justify their loss as being 'stuck' against higher ranked players, not as a result of playing against their level players. Meanwhile in the games they win, they want to believe they won them because they outplayed people of comparable skill to them, and not because they're stomping on people much lower rank, so it's nigh impossible for a system to exist that appeases everyone's psychology while being balanced.