Inspired by this.
My Working Theory: Average Developer Ability to Perform Career Calculus = 1 / Volatility of Job.
This doesn't hold for "great developers" (ex.: Jim Little, Michael Nelson.) They learn because they enjoy it. They would be learning the same stuff if they were working as longshoremen.
I don't think it goes for developers in places where the management encourages growth either (like Solutions IQ), but I've never worked in a place like that, so I'm not sure if it's just the developers I've met from these places, they don't hire weenies, or it's really the environment.
For me, maybe my motivation is my "packed bag": I've never worked in one place a really long time, and I am usually in some phase of culture shock. I always kind of keep one bag packed in case I have a really bad day and need the relief of moving on.
The place I work now has extremely low volatility. You could easily start here as a developer and work until you retire. There are many incentives to stick around, and overall, it's a really great place to work. If they need you to retrain for something else, it's unlikely that you'd get forced out, and they would probably make sure you had access to whatever training you needed.
Unfortunately, this means that most developers don't get a lot of push to spend personal time and effort keeping their saws sharp when they've already got the job.
The thing I hear most often is that "there is more to life." True, but I don't think spending a small amount of personal time keeping your skills up to date is enough to impact a normal life. It's harder when you have a family, but not being able to spend, say, 5 hours a week sharpening sounds weak to me. If you can't even do that, you shouldn't be eating lunch.
I think this has been and continues to be one of the greatest problems in our industry today.