A mesma pergunta estava aqui:MongoDB db.runCommand() de C#
Minha primeira resposta estava lá, mas acho que é melhor fazer aqui.
Acho que você poderia chamar com este código:
var doc = new BsonDocument(new Dictionary<string, string> { { "test_function", "3" }});
var command = new BsonDocumentCommand<int>(doc);
var result = db.RunCommand(command );
Mas, como você pode ver aqui , não é realmente recomendado usar procedimentos armazenados dessa maneira.
Encontrei outra solução aqui:
https://gist.github.com/jamesikanos/b5897b1693b5c3dd1f87
Com este snippet, você pode chamar sua função desta forma:
db.EvalAsync("test_function(2)").Result