Вам необходимо вернуть результат l oop:
(defn split-text [text step]
(loop [i 0 result []]
(if (> (+ i step) (count text))
result ;; <== here
(recur (+ i step)
(conj result (subs text i (+ i step)))))))
Кроме того, последний фрагмент будет потерян, если его длина меньше step
символов. Если хотите сохранить:
(defn split-text [text step]
(loop [tail text result []]
(if (empty? tail)
result
(let [len (min step (count tail))]
(recur (subs tail len)
(conj result (subs tail 0 len)))))))