I’ll try to explain based on my experience explaining Java to some friends. I never been through formal programming training which probably hence made me a poor teacher.
To me, it is because they cannot accept the language as it is. They question why are things done this way? Why not another way? The modern programming language is so abstract. It’s hard to see how the lower level components interact.
Some learners need to fiddle with the lower layers to accept and understand the higher level components. We just build tools on top of the lowest layer and then establish more and more layers thinking it is making life simple.
I lost my patience before and said to a friend, “Why can’t you just memorize it? It’s by design, if you don’t like then design your own language.” Actually it’s just an excuse because the real reason is too long to explain. It’s like telling a primary school kid that light travels in a straight line even though you well know it doesn’t and thank god it doesn’t.
Perhaps it does make life simple for the already programmers, but it makes learning a lot harder.