Почему этот код возвращает 0?
Потому что return возвращает значение и завершает выполнение функции. Т.е. ваша итерация for срабатывает только 1 раз и после завершает свою работу. Если вы хотите выводить все результаты итерации, то нужно print(i)
Потому что return