Что лучше для работы с файлами QT или C#?
Возможно, использованы высокоуровневые функции без понимания того, как они реализованы на низком уровне.
Например, если программа на Qt читает файл кусками, отображая в память только то, что читает сейчас, а программа на Шарпе вычитывает весь файл в память и только потом начинает по нему искать - вполне возможна шестикратная разница даже при совершенно идентичной реализации алгоритма собственно поиска.
Исходя из постановки вопроса, на 99% уверен в корявой реализации алгритма поиска на обоих языках. Рекомендую погуглить про алгоритм поиска подстрок методом Кнута-Морриса-Пратта. Чем больше искомая строка, тем быстрее будет выполняться поиск (зависит от содержимог оподстроки, но в общем быстрее).