In my experience just about every language has its own pitfalls. The reason that C has memory leaks is that the programmer is responsible for allocating and de-allocating memory. In a language with a more complex runtime that might be taken care of but the trade-off will be that you get some other class of problems in return.
Linus writes his code, fixes the bugs that are found. The end result will most likely be a solid and fast piece of software with a minimum of dependencies and bloat.
If that is not your cup of tea then do a better job but don't bitch about the way he chooses to do it.
What do you expect? For a guy like Linus to write a utility in a language that he feels is not optimal for himself and/or the problem at hand? To pick installing a 100M runtime to run a 50K binary?
Linus is a systems programmer, not someone that would go for an overkill solution in some high level stack, launched on Monday, forgotten by Friday. Code like this has staying power and has a chance of surviving its creator. Script stuff is typically throwaway.