> range - создает какой то список?Это переменная. В неё записывается вывод команды
find -L /data3/ -type d -mindepth 1 -maxdepth 1 -noleaf
Два символа ` (там, где буква ё на клавиатуре, это важно) означают вызов команды заключённой между них. Синоним этого варианта апострофов (есть ещё другой, с другим смыслом, там где буква э) будет конструкция $(команда). Сам скрипт выполняется в оболочке Bash (#!/bin/bash прямо на это указывает), что не мешает ему быть написанным на языке оболочки Sh.
Про конструции типа [ -d имя ] и подобные см. man test. Одинарные квадр. скобки это синоним вызова test.
Cтрока "for dir in $range" разворачивается так: значение range разворачивается в набор "слов" разделённых Internal Field Separator, переменной dir по очереди присваивается каждое из полученных слов, для каждого очередного значения dir выполняется тело цикла. Кстати, в той форме, как строка написана, скрывается засада - см. что есть Internal Field Separator, как Bash интерпретирует концы строк в случае оператора for, и как это соотносится с содержимым range.