Я не знаю, как работает привязка MongoDB C #, но опишите, как она обычно работает:
При использовании IQueryable
создается дерево выражений, затем переводится в формат, понятный базе данных, и затем выполняется на сервере базы данных.
Это обычно имеет небольшие издержки (создание дерева выражений и его перевод) по сравнению с непосредственным написанием запросов в формате, который понимает база данных.
С IEnumerable
вместо выражений используются делегаты. Необходимо выполнить итерацию по всему набору данных, а затем выполнить фильтрацию с использованием Linq-To-Objects. Это намного медленнее.