The idea was originally conceived as starship crews wore the TNG uniform and starbase crews wore the DS9 one. Of course, after DS9 started we never saw any starbase personnel on TNG, although whenever we saw starship personnel in DS9's first few seasons they did wear the TNG uniforms.
As I understand it, the original plan with the new uniforms that were designed for Generations was that they would continue the ship/base divide and those uniforms would then be used on Voyager. But of course, those were ditched at the last minute and due to a desire to make Generations look different than TNG, they wore the DS9 uniforms. But then, budget constraints meant they literally had to wear the same costumes used on DS9 and there weren't some to fit some of the actors, resulting in the weird mix we saw in the movie. Voyager likely went with the DS9 uniforms because someone high up felt its cast looked better wearing those than the TNG uniforms.