It's why he's still an ensign. Military organizations have time in rank and time in service requirements. Starfleet doesn't consider Harry to have met the time in rank requirements since he keeps getting killed/timeline shifted/temporally displaced/sucked into a meteor coffin. Each time this happens his time in rank starts over.