The spritework is bad.
The colors are dull.
The music is bland and unmemorable.
Emerald replaced Steven with Wallace, which is not only bad in terms of character, but having two endgame Water-type specialists was unneeded.
Blaziken.
Wurmple evolves into Silcoon or Cascoon depending on a random personality value.
The Physical/Special split not existing yet hurt all of the Dark types introduced that gen not named Shiftry or Cacturne. Sableye would get a pass if it wasn't absolute shit.
Lack of Ghost and Ice types made for a boring and easy experience during the Pheobe and Glacia E4 battles.
All Ice types were pushed away in an out-of-the-way endgame location.
A lot of weak Pokemon were unnecessarily rare, like Skitty, Nosepass, and Chimecho.
Masquerain isn't a Bug/Water type with Levitate.
Shroomish learns Spore at level 54 and can't learn it as a Breloom.
Fishing for Feebas.
Team Aqua limited themselves to Carvanha/Sharpedo and Team Magma limited themselves to Numel/Camerupt, despite there being many other Water or Ground types to choose from.
Azurill was unnecessary, as Marill is already balanced for early-game.
"Pelipper used Protect!"
Mirage Island.
Having to exchange bikes.
Battle Frontier trainers having Shedinja.
Eight HMs, 3 of which are Water type moves.
Pokemon Colosseum was a slog.
Pokemon Gale of Darkness shoved half of the game's Shadow Pokemon in the final area.