I don't think there was ever an official, on-screen explanation for why Ensign Kim was still Ensign Kim after seven years. It bugged me for a long time, too. But given the unique circumstances of Voyager -- in the Delta quadrant with an estimated 70-year journey home ahead of them -- field promotions had to work differently, and perhaps not at all. Suppose after a few years, Janeway actually promotes Harry to full Lieutenant. Cool. Did Tom or B'Elanna ever get a promotion? Maybe a few years later, someone else gets one. The problem is that they've got a 70-year journey ahead of them. By time they got home, every officer would've been a Commander. Janeway, being a Captain, could not promote someone else to Captain, but everyone else would eventually be promoted as high as they could go. It didn't end up taking 70 years, but that's because they caught a break.
I figured a decision was made to basically not have any field promotions. I don't know if the decision was made by Berman, or maybe it was supposed to be a discussion we never saw between Janeway and Chakotay and maybe Tuvok. But it made sense in a way that they just couldn't start with the field promotions. Command structure would've eventually gone to hell. So they went with the "Gilligan's Island" model, where everything and everyone just stays the same for the entire series.