If you think about it, why wouldn't more great players play for little to no money in their later years? Those guys have made many, many millions during their careers and, unless they are total idiots, don't need another dime. Why not play for a million bucks a year and let the team load up on other great players so you can compete for and, hopefully win, championships? Hell, if you play well and win you will make a lot of the money you gave up back in extra endorsements (if you want to).
BTW, I know the answer for most players - pride and greed.
That is one way to totally defeat the parity-inducing purpose of salary caps...