Сначала изобрели циклы. Затем рекурсию.
Я бы сказал так. Принципиальная разница в том, что цикл это всегда повторное многократное выполнение одного и того же кода.
В рекурсии можно реализовать гораздо более сложный алгоритм, можно сказать, что рекурсия, это более "умный" цикл, реализующий "углубление внутрь себя", различные его уровни углубления. Повтор - да, но этот код, уже не тот же самый, как в цикле, это уже код находящийся на другом уровне.
На практике рекурсия позволяет гораздо более точно описать некоторые процессы, либо механику обработки этого реального процесса. А в связке с ООП, это еще и очень большое облегчение разработки ПО, и сокращение объемов написанного кода.