I always assumed it was intended to be a starship/starbase distinction in the TNG era.
(Certainly this is what DS9: "Emissary"
seems to be implying. Sisko, Dax, Bashir and O'Brien all wear the TNG outfit at various points in the episode, largely because they all arrive at the station directly from starship duty).
Although the Real-Life explanation was far more mundane: simply a need to distinguish TNG and DS9 on a visual level, so that the new kid on the block looked distinct and unique from its parent for any audiences that were channel surfing.
As for why VOY makes the switch, pre-production sketches for set designs etc for "VOY: Caretaker"
show crewmembers wearing the standard TNG outfit, so I assume the decision to switch to the DS9 jumpsuits was made quite late in the day. Maybe even after the decision was made to use the DS9 jumpsuits in GENS when the originally planned new uniforms proved inadequate for their purpose.
I do like the fan ret-con theory that the DS9 jumpsuits were ALWAYS an alternative uniform and it was just down to what the ship's XO considered appropriate for their mission.