find "$directory" -type f -name "*.in"
is a bit shorter than that whole thing (and safer. It deals with whitespace in filenames and directory names).
Your script is probably failing for entries that don’t have a .
in their name, making $extension
empty.