"--" is used to mark the end of options and thus the beginning of arguments. It tells the command to treat everything following it as arguments and not as options, even if something may look like an option. This is used in several commands, not just ls
.
This prevent the command from choking on arguments (eg. filenames) that begins with a hyphen (-) or two (--), which else would cause an error (no such option) or unpredictable result (if the hyphened argument actually is a valid option), because the command would try to interpret it as an option (and not as an argument).
For example, lets say one of your arguments is a file with a newspaper article:
-No Collusion, President exclaims - Washington Post.html
A preceding "--" will prevent the "-No" from being treated as an option.
This is especially important when using jokers (*) as in your example, because you'll never know beforehand if one or more of all the files from several sub-directories may begin with a hyphen.
subdirname/--foobar
anyway and thus not have leading dashes? – xenoid Apr 06 '19 at 07:01