The difference is mentioned in the documentation itself:
Return an iterator which yields the same values as glob() without actually storing them all simultaneously.
Basically list will have all the items in memory. Iterator need not, and hence it requires less memory.