Я заметил это сам некоторое время назад, я думаю, проблема заключается в том, что каждый раз, когда вы вызываете setText, размер текстового поля может меняться, что требует, чтобы весь экран проходил через ретранслятор (дорогой).
Я еще не пробовал это сам, но если ваш текстовый файл прост и может быть сделан относительно фиксированным размером, возможно, попробуйте подклассировать TextView и создать представление, которое не изменяет размер на setText, а просто рисует все, что угодно может в существующую область? Это сэкономит много времени.
Возможно, это уже флаг setText, который может заставить его сделать это, но я не знаю об этом, хотя я не искал его.