They were better back in the TOS era, If you include the movies as all the characters got promotions.
Actually...DS9 was one of the better series when it comes to promotions. Most of the Starfleet characters receive a promotion at some point during the course of the series. Voyager, conversely was laughably bad at this while TNG was ok.
Promoted over 7 years:
Sisko: Commander>Captain
Dax: Lieutenant>Lt. Cmdr
Bashir: Lieutenant JG>Lieutenant
O'Obrien? (not enough attention is paid to enlisted ranks to be sure)
Nog: Cadet>Ensign>Lieutenant JG
Not Promoted:
Worf (Promoted prior to arrival on DS9)
Compare to TNG
Promoted over 7 year:
LaForge Lieutenant JG>Lt Cmdr
Troi: Lieutenant>Lt Cmdr (Full Commander?)
Crusher: Lieutenant>Lt Cmdr
Not Promoted:
Picard (Turns down promotion)
Riker (Turns down promotion 3 times. finally accepts promotion in Nemesis)
Data
Worf (Promoted in Generations)
Compare to Voyager
Promoted over 7 years:
Tuvok Lieutenant>Lt. Cmdr
Not Promoted:
Janeway (Promoted at some point prior to Nemesis)
Chakotay (Provisional rank)
Paris (Demoted to ensign and then promoted back to Lt JG)
Torres (Provisional Rank)
Kim
Doctor (no rank)