CRLs have problems, for example:
online revocation checks are slow and compromise privacy.
What happens if a client can't get through to a CRL server? If the client refused to go ahead until the CRL server was available, then attacker could cause a mass denial of service by dropping TCP packets targeted at this server. This would grind the Internet to a halt. this is not acceptable for security (a trivial target to compromise internet availability) or usability.