Because Game Freak wanted him to.
It can be assumed that they scaled down Dragonite's level to make Lance's fight more doable. A level 55+ Dragonite, at that point of the game, would have been extremely difficult to take down.
I guess you could ask why they'd include Dragonite if it was going to be under levelled, but back in Gen 2, there was a lack of Dragon-type Pokemon around. Dragonite was one of the very few ones around, and I guess Lance wouldn't have been very much of a dragon master if he didn't have a Dragonite. So they game him one. (Oddly enough, he doesn't use a Kingdra, despite it being a Dragon type.)
It may have also been to assert the fact that Lance is a rule breaker. Not only does he have under levelled Dragonite, he has illegal moves on his Aerodactyl and Dragonite as well.