Gyarados is like the inbred moronic mongoloid of Pokemon. I hate the way he holds his mouth open like a brain-dead infant. He looks like a gargoyle.
Not only that, but he wasn't even that good in the earlier gens. He still doesn't learn any flying moves naturally, and in the earlier Gen games, this was a waste of his impressive attack stat.
Possibly the worst part about Gyarados, in my opinion, is how easy he is to obtain. In concept, Magikarp is supposed to be a Pokemon you put a lot of work into, and your payout is a powerful Pokemon. However, all you need to do is level a Magikarp up to level 20. With switch training or Exp. Share, this is almost too easy. Add the fact that you can catch high level Magikarp and Gyarados anyways, and he becomes one of the easiest strong Pokemon to obtain.
Lastly, he is about as good as his counterpart, Milotic, but about a billion times easier to obtain. That alone is unbalanced as fuck.