I think people who ask this question are looking for you to take ownership of your mistake. Reason or excuse is a fine line, to be sure. The difference is often whether you are owning your part in it.
As in, “Well, I mistakenly thought…”, or “It seems I was wrong to believe that…”, and finishing with, “My bad, won’t happen again.”, will go a long way to appeasing the asker of such questions, in my experience.
As for the OP, I say “I’m sorry” and I forget it. If they go on with the question, I say something like “Do you mean that you seriously want to know why I (fill in the blank) or are you just wanting to lecture me?”
My drill sergeants had a certain mantra, “Is that a reason or an excuse?”
“Why didn’t you shave this morning?”
“I spent too long making my bed and didn’t have the time.”
“Is that a reason or an excuse?”
“A reason, drill sergeant.”
“[Do some punishment]”
“Yes, drill sergeant.”
The point wasn’t to really learn why you did what you did. The point was to beat into you that there are no excuses in the Army. You’re never excused for fucking up. It teaches you to figure out what went wrong, take your licks, and get over it.
So try answering “So you’re blame shifting?” with “It’s a reason, not an excuse.”
If the situation is what I think it is, then it’s not a question, it’s an attack. No matter what you say creates an opening for further attacks. Therefore, I found the perfect answer: I don’t want to talk about it. Here’s how a typical exchange goes:
A: Why’d you make that mistake?
B: I don’t want to talk about it.
A: Why don’t you want to talk about it?
B: I don’t have to give a reason. I’m an adult.
A: But if you don’t give a reason, you might make that mistake in the future.
B: No. Actually, no matter what reason I give, no matter how reasonable or justified, you are going to say I was wrong anyway. Therefore, if I say nothing, you have nothing to criticize.
A: Well, I think you did it because of [this.]
B: If you already knew, why bother asking me in the first place?