Basic is a good language for learning programming. It allows you to focus on core mechanics (flow control, predication, logic, arithmetic, loops, recursiveness, etc) without focusing on higher level language concepts. As long as a program remains small (which is the point here), GOTOs are fine.
Higher level languages can be more confusing to kids. Objects, factories, inheritance and all that stuff is easier for adult minds to comprehend since their idea is modeled after real world concepts, but kids don't have those concepts fully absorbed yet (or at all) anyway.
In fact, what I've observed is that kids don't have too much trouble with assembly either. It's low level, simple and repetitive. You have "boxes" you put stuff in, operations you do on them, etc. As long as you don't get into the more exotic instruction sets, you're fine. And sure, and all address based operations might be a little complex.
That's why I actually find basic quite good as a learning language. A kid who starts learning about programming concepts at 8-10 years old has a chance at becoming a very strong programmer later on. I have seen it many times. So basic is a really good idea. In fact, I've used basic256 for one of my kids.
Don't snob the language. You want something barebones. It's the computer science concepts they get exposed to at an early age that are important. Writing a "guess my number" or "guess my animal" game is a great growing exercise.