One of the main criticisms of Lua is that the scope of a variable is global by default. This is not perfect, and people who have worked with me know I don't like useless globals.
That being said, I think the solution some people advocate ("Do like Python!!1") is "wrong". Global by default is clumsy but it makes sense because there is only one global scope. Local by default and a "global" keyword causes aliasing issues because there are other levels of scope besides "local" and "global".
Instead of a long explanation, let's take an example: you cannot do this in Python.
a = 1