One reason I've left a company:
Working for the NHS (National Health Service) in the UK which meant my salary was in a band (A, B, C etc). That meant I was able to reach a max salary for my band, but could not get any more than that. The only way for me to get a meaningful salary increase was via a promotion (which wasn't going to happen unless the current Senior Software Developer left, or died), or by a cost of living increase in my wages.
There was one developer in the team who had been on the same salary for 5 years. He soon left. I lasted there two years before getting fed up of the crap wages.