Não sei como funciona a ligação MongoDB C#, mas descreva como geralmente funciona:
Ao usar
IQueryable
uma árvore de expressão é construída, então traduzida em um formato que o banco de dados possa entender e então executada no servidor de banco de dados. Isso normalmente tem uma pequena sobrecarga (construir a árvore de expressão e traduzi-la) em comparação com a gravação direta de consultas no formato que o banco de dados entende.
Com
IEnumerable
delegados são usados, em vez de expressões. Ele precisa iterar sobre o conjunto de dados completo e, em seguida, filtrar usando Linq-To-Objects. Isso é muito mais lento.