Isso pode acontecer devido a um bug como o SERVER-13611 (portanto, verifique se você está na versão mais recente) ou porque você está tentando classificar em um índice esparso no 2.6 , mas mais geralmente é porque você está simplesmente tentando classificar também muitos registros na memória sem um índice.
O limite específico que você está atingindo é intencional e está documentado aqui - ele não pode ser alterado, portanto, é necessário reduzir o conjunto de resultados ou usar um índice etc. para realizar a classificação.
Atualização (novembro de 2014): A próxima versão 2.8 (2.8.0-rc0 no momento em que foi escrita isso) agora permite que essa configuração seja alterada, da seguinte maneira:
db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})
O valor padrão é 32MiB (33554432 bytes) e deve ser ajustado com cuidado - classificações grandes na memória podem fazer com que seu banco de dados fique parado (é por isso que houve um limite em primeiro lugar).