Non so come funzioni l'associazione MongoDB C#, ma descrivi come funziona di solito:
Quando si utilizza IQueryable
viene costruito un albero delle espressioni, quindi tradotto in un formato comprensibile per il database e quindi eseguito nel server del database.
Questo in genere ha un piccolo sovraccarico (costruisci l'albero delle espressioni e traducilo) rispetto alla scrittura diretta di query nel formato compreso dal database.
Con IEnumerable
vengono utilizzati i delegati, invece delle espressioni. È necessario scorrere l'intero set di dati e quindi filtrare utilizzando Linq-To-Objects. Questo è molto più lento.