Why would an IRS refund be late? There are a few reasons.
1. Identity theft. That's the most common reason. Even potential identity theft can take a long time to resolve. If you're hit with identity theft, please be patient.
2. Manual refund. Sometimes, the IRS can't send out a refund like normal, and someone has to do it manually. That takes a while. This happens most often when the taxpayer is deceased, and therefore, the check has to be written out in someone else's name. "Someone requested a check be written out to someone other than the taxpayer" is a huge red flag for identity theft, as you'd expect. Also, as you'd expect, widows and widowers don't like having to wait extra time for their refund.
3. Computer error or processing error.
4. Your refund is super high. Congress has a special group, which oversees the release of huge refunds. I think the threshold is 10 million dollars or so. I guess it makes sense that Congress takes care of those refunds themselves, rather than letting the IRS do it.