Два запроса имеют совершенно разные вещи.
Использование предложения LIMIT
ограничивает размер результирующего набора равным 10000, а при установке размера выборки нет, вместо этого он дает подсказку драйверу указав, сколько строк будет выбрано за раз при повторении через результирующий набор - который включает все строки 800k.
Таким образом, при использовании setFetchSize
база данных создает полный набор результатов, поэтому он занимает очень много времени.
Редактирование для ясности: установка размера выборки ничего не делает, если вы не выполните итерацию результат (см. комментарий Джона), но создание намного меньшего набора результатов через LIMIT имеет большое значение.