For me it was frustrating that the higher level I got, the less XP I received per battle on top of needing more XP to level up. Like I need 1000 to level up and I get 100 per battle, then I need 1500 to level up and get 80 per battle, then I need 2000 to level up and get 50 per battle. It makes grinding far more grindy.
I can get that it makes leveling under-leveled pokemon less grindy, because that's exactly what it does, but in general, it's still frustrating seeing the amount of XP you gain per battle dwindle as you raise in level, even if it's still more than you would've gotten because you're underleveled. It's just a feel bad mechanic, even though it's beneficial in about 90% of cases.
It sounds to me like you were in the wrong areas and fighting the wrong battles. I had to actually grind* in Blue, Silver, multiple times in Ruby, and in Pearl, but I never had to grind in White. I felt that Gen V had finally managed to balance how you leveled up over the course of the story, and on top of that it helped to equalize levels if you picked up a new poke on the way and/or when leveling up after EV training.
*my definition of grinding: being forced to stay in an area repeating battles in order to level up because the next area is too highly leveled to get past without doing so
I dunno why, but I use the same definition of grind. And I never had to grind in any of the games except for in Gen V. I guess Gen VI I technically did, especially without using the EXP Share, but I was grinding for money (BUY ALL THE CLOTHES) and the levels were just a bonus.
I had to grind in Gen IV to get my leafeon to level 100, but that was post game and clearly optional.
But for some reason iin B2W2, I was always underleveled and couldn't win a battle so I had to go to preious routes to battle and thus leveled up more slowly and you know the rest.