(He also teaches elementary schoolers Scratch at a Coder School location, and they seem to like it.)
The visual game-building aspect is an immediate draw, of course, but I also think the block-based approach is a great analogue to building things with Lego. It just clicks for some kids. It is also fairly representative of most coding, in the sense you assemble "blocks" comprising commands / statements / function calls in a particular order based on the shapes of their inputs and ouputs to build a larger structure.
One thing my kids struggled a bit with was going from the event-based nature of Scratch to the more linear nature of Python, along with the concept of scopes. It led to some form of "magical" thinking where they assumed e.g. a function / variable would be reachable based just on its signature / type. But other than that most concepts transferred over easily enough to conventional languages.