What is the benefit of having certificates expire at some fixed date?
Digital certificates are used to verify identities and affiliations online. People change jobs, students graduate, businesses fail or change ownership, private keys get leaked, and any number of other things may happen that would cause a particular certificate to stop being an accurate way to verify an identity. Certificates expire so that people using them can be sure that the information in them is at least somewhat up to date.
The official reason why certificates expire is because of revocation. A certificate is "revoked" when its issuer asserts that the certificate contents are no longer to be trusted, for some reason which needs not me specified. It is like a "cancel" from the CA: the CA signed the certificate, but now regrets it.
A common reason for revocation is when the private key is suspected to have been stolen (e.g. a smart card was lost, so it might be in the wrong hands).
Revocation works by adding the certificate serial number in the Certificate Revocation Lists that the CA publishes regularly. These CRL are signed (usually by the CA) and people who use certificates (e.g. Web browsers, for SSL server certificates) are supposed to automatically download the newest CRL to see whether the certificate they are about to use has been revoked or not.
Without expiration dates, CRL would grow indefinitely, and become too bulky for usage. With expiration, certificates which are expired are removed from the CRL; in that sense, certificate revocation behaves like an hastened expiry. So there you have it: certificates expire to keep CRL small.
(If certificates were very short-lived, and renewed every week or even every day, then we could get away with no revocation support at all, which would be cool, but this would require some sort of automatic renewal, which has its own set of potential issues.)
CRL size is the theoretical reason. The practical reason is that commercial CA really love it when customers have to buy a renewal every year.
An argument can also be made about key sizes and algorithms. Certificate renewal is a good opportunity for enforcing a new algorithm, or a larger key than previously. This is a smoother mechanism than having to revoke old certificates when their key size becomes "too small for comfort" with regards to cryptanalysis advances.
Same reason your driving licence expires. You may have existed last time you renewed, with that name, that address, that date of birth, that appearance, (and you may have been able to drive ;-)) but that state cannot rationally be expected to continue unchanged forever. So it has a renewal. Same applies to a digital certificate. It identifies an entity that exists, has a certain name, has a chain of CAs that are prepared to vouch for the next one down, etc ... None of that persists forever.
It's just because private keys can get stolen/compromised over time. So, if someone steals your key (e.g. a naughty employee who's leaving the company), their stolen key is only valuable for a limited time.
Sure, you can revoke a certificate once you know it's been stolen, but if you don't realise it's been stolen, then expiration helps.