Money I'll give you, but the vast majority of software is not going to be "interesting" or progressive. There are tons of major corporations doing "boring" work.
Much like raises, Devs can get strung along by promises to clean up or rewrite in the future, or often by their own thinking that they can slowly fix things (been down that road enough myself).
Also, it makes it possible to get to the point where you are retaining people for 2+ years. If there is a lot of turnover under that then it's probably the companies fault.
There was a guy who tried that, he wrote code so bad that no one else could understand it. In the end, the company fired him and hired someone else to rewrite his code from scratch. It's not worth it, just write good code.
1) Money is a factor because my job is difficult.
2) Up to date technology is important because I want to build interesting products.
As a developer, these are my motivations.