Medals are given out for good work, not promotions, though the writers and producers of Star Trek didn't really get that apparently.
Maybe Kim just didn't earn a promotion because he's a poor officer, and if he hadn't been stranded in the DQ, he'd eventually have been forced out of the service.