Of course it stands for global … And because it doesn’t stop after the first match, it repeats the match after each substitution, checking if there’s still anything to do — until it reaches the end of the input string. IOW it’s killing the bad characters one at a time.
It’s most useful/least ambiguous to refer to the g flag as “global”, because:
“Greedy” already stands for a different concept in regexes
The same is true of “repeat”
For example, the regex /(ab){5}/ matches 5 “ab” substrings in a row (i.e. the substring must repeat 5 times). If we change it to /(ab){1,5}/, it matches as many as it can up to 5 (i.e. it’s greedy).