Поясните пожалуйста bash скрипт?
1. https://tldp.org/LDP/abs/html/process-sub.html
2. bash это интерпритатор, вы всегда можете вставить куски выражения, и посмотреть что они выдают, например:
echo <(ls -1 .)
/dev/fd/63
3. Ваш код мягко говоря дурно пахнет, а по сути он вообще кривой и будет сбоить на файлах со спецсимволами или даже пробелами. Можно сделать проще и правильнее:
shopt -s nullglob
for f in my_temp_dir/*; do
    echo "$f"
done
nullglob нужен для случаев когда файлов совсем не будет, без него подставится строка со *, и это может вызвать ошибку в вашем коде.
https://www.opennet.ru/man.shtml?topic=bash&catego...

Это две разных конструкции.
Первый знак < это стандартное перенаправление ввода.

<(...) это Подстановка процессов, т.е. вывод команды в скобках будет как бы файлом.

В данном скрипте это всё видимо сделано исключительно для демонстрации.