When the argument list is omitted from a for loop, it defaults to iterating over the positional parameters passed to the script or function. The $@ variable represents all positional parameters as separate words, making it the default source for iteration when no explicit list is provided.