I wonder if part of the problem is accessibility.
At age 10 I experienced writing my first ever programs in BASIC on an Atari 800XL. They had one hour to catch our interest and in my case they did, big time. Did they make us insert and select data from an array, or crunch numbers, or write a letter in a word processor? Nope, they knew their target audience; they had us write something not far off Hello World, but with rainbow coloured text and sound playing behind it.
I. Was. Hooked. A real "WOW!" moment, if you will. The path of a life changed inside an hour and a few dozen lines of BASIC. I got a Spectrum that Christmas and tore into the manual like a kid possessed. Within an hour or two I was making the computer BEEP and DRAW lines on the screen. I was making the computer do cool interesting stuff. Me! Making cool stuff happen! Holy crap!
That simple accessibility is missing from modern day systems. Back then, if I wanted to draw a red circle on screen I would power the computer up, type something like CIRCLE INK 2; 100,100,50 and BAM, a freakin' circle. Middle C for one second? BEEP 1,0. Job done, curious kid entertained, another baby step toward a future programming career. I soon learned about DATA structures so that I could create user-defined graphics, or play a musical scale. Another step.
Today, I'd have to install an interpreter or compiler or IDE (possibly paying money for it), maybe install an additional 3rd party library for the graphics operations, dig through the weighty API documentation to find out how to instantiate a surface to draw into and a window to put the surface in, initialize a 1-pixel wide red pen object, call a method to draw the circle in the bitmap surface using the pen object, update the window display with the bitmap surface..........all that in an INTERPRETED scripting language FFS. Christ almighty, I get antsy thinking about it and I DO THAT STUFF FOR A LIVING NOW!! Can you imagine how quickly a pre-teen kid would get bored of wading through it all and decide that this programming thing isn't their cup of tea and that it's more fun to just play X-Box games instead?
I'll be the first to say that BASIC taught me a lot of bad habits, but it also got me to a point where I knew the important programming concepts inside out and could understand why INCLUDEs and APIs were useful additions to my repertoire. Being able to do cool stuff really quickly and easily on demand meant I didn't get disillusioned before I reached that point.