There is a certain acceptable time within which one must say, "I'm sorry." A sort of statute of limitations on apologies, but that protects those who you've wronged.
You can only apologize so long after the fact. Past that time, it's self-serving. It's unkind. It doesn't mend things; it just digs them up and leaves it exposed anew. Or it's just uncomfortable, where both parties thought the offense was long since over and done with.
And yet, you still feel awful. You regret that you've let that undetermined about of time expire and you've got to live with that. Live with the fact that you hurt someone or did something wrong and on top of it, you were too cowardly to properly take care of it. I'm not one to say "no regrets" (this TED talk cured me of that), mostly because that regret hopefully makes me make different choices the next go around.
Next time, I'll apologize when I should.
Next time, I won't have a reason to apologize. I'll do it right the first go around.