Many times explanations add more complexity than they subtract. They use terminology that won't mean anything so someone who doesn't already understand the concept being explained, or use examples that include other technical concepts or unfamiliar business logic.
For example, Google "dependency inversion", look at the first few explanations, and consider whether someone who read them without already understanding it would learn anything from reading them. The diagrams are incomprehensible and are likely to make people feel stupid.
"Explain it to me like I'm five" means "Teach me instead of overwhelming me with extraneous jargon."
I agree with your last statement. My point was that many of the "like I am five" explanations do a poorer job of teaching the concept by sticking only to "childish" concepts.
In you example about "dependency inversion". I am gonna assume you are a programmer, not a five year-old. This helps me make assumptions of what you might know and makes my job of explaining much easier because I can build on common ground. Otherwise I have to impose on you MY understanding of what a five year-old would comprehend without taking into account the available information -> you are a programmer.
Did you think it was literal, as if someone was going to explain a programming concept to a five year old child?
There are a number of people who do take it literally. Sometimes it's a harmless conceit; other times it leads to tortured metaphors which do a markedly worse job of furthering the asker's understanding of the topic than does a simple but still-technical breakdown taking for granted a minimal shared understanding of the context.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.