First of all, this is a slight oversimplification: after taking transactions with fees, the standard policy is that priorities of remaining transactions are weighted by age and amount transacted. For each input to the transaction, the age of the input being spent (counted by number of confirmations) is multiplied by the bitcoin amount of the input, and the result is summed over all inputs to get the priority of the transaction. So a large-value transaction spending a fairly recent input might get higher priority than a very small-value transaction spending an old input.
There's certainly no requirement for any given miner to follow this policy (miners have complete freedom as to which valid transactions they include in their blocks), nor is there any direct financial incentive for them to do so. However, there are a few indirect incentives.
The policy described above is the default behavior of Bitcoin Core. A miner who is willing to use this policy can use Bitcoin Core for their transaction processing, rather than having to spend time and money to find or develop some other software.
Since miners are out to earn bitcoins, they have an incentive to behave in ways that help make the currency convenient and desirable for people to use, since that should increase adoption of the currency and ultimately increase the value of a bitcoin. So if they believe this policy is helpful to the community as a whole, it is in their interest to use it. Even if they are not sure this policy is inherently the best, there is some benefit in using it simply because it is standard; it is good for the currency's transaction processing to behave consistently, so that users know what to expect.