forは余計な変数がいるけど
whileを使えば余計な変数は不要

どうするかって?

set -- *
while [ $# -gt 0 ]; do ...; shift; done

余計な変数がいるからforを使わないというのは正しいが
余計な変数がいるからfindを使うは正しくない