Of course I could take any character out of high tier, and with the same amount of time and effort I put into my Link, be a better player with said character. However, if I take Meta Knight out of Meta Knight tier, I have more favorable matchups than any other character.
ROB, Diddy, DDD, and Snake may be more suited to your style of play, however you arguably always at a disadvantage when you play a Meta Knight main who has skill equal to yours. In addition to this, with 4 characters, you cover about the entire cast with good matchups. However, you still have plenty of losing matchups. Meta Knight, as a single character, has only good matchups.
The point is, a character should have flaws, like Link's or Snake's recoveries, Meta Knight may have a few such as his terrible ability to kill on the stage, but once a character is off the stage, Meta Knight can easily kill most characters.
Let's say we wait. Two things may happen.
A clear counter emerges, let's say that Character X can do a 0 to death infinite on Meta Knight. At this point, the game turns into Rock-Paper-Scissors. Be that character and reliably kill Meta Knight, play as Meta Knight and defeat the counter of Character X, or play as the counter of Character X and hope the other player doesn't choose Meta Knight.
If no counters emerge, more and more players will switch to Meta Knight. It has already been happening and will most probably continue to happen, eventually everyone who plays the game plays as Meta Knight.
Why not ban him for a few months? Everyone other character's metagame can catch up to Meta Knight's and a counter may be found within the time of his ban.
Meta Knight is bad for the game. Having no bad match-ups and no exploitable flaws make him much more powerful than any other character in the game.