I've looked around on Google and on here, but the posts I have found just reiterate that JS has function scope and not block scope, without explaining why. I'm curious to know why this is actually the case.
Converting my comment to answer
Choice of the creator: I tweeted Brendan and got the following answer:
@mplungjan 10 days did not leave time for block scope. Also many "scripting languages" of that mid-90s era had few scopes & grew more later.
That said, here are some relevant points:
we can artificially introduce scopes by creating new functions and immediately invoking them
letdeclared variables are hoisted to the beginning of the enclosing block.
Redeclaration of the same variable in the same block scope raises a TypeError.