Unit tests have different requirements than production code. For example, unit tests may not have to be as performant as the production code.
Perhaps it sometimes makes sense to write your unit tests in a language that is better suited to writing unit tests? The specific example I have in mind is writing an application in C# but using IronRuby or IronPython to write the tests.
As I see it, using IronPython and IronRuby have several advantages over C# code as a testing language:

Mocking can be simpler in dynamically typed languages
IronPython has less verbose type annotations that are not needed in unit tests
Experimental invocation of tests without recompilation by typing commands at the interpreter

What are the tradeoffs in using two different languages for tests and production code?
The biggest disadvantage is that you are also testing compiler dependencies in your unit tests.  In a sense, this also makes them integration tests.  That might make them preferable if you expect your code to be usable from multiple languages, but it's adding one level of complexity that you may not need if your code will only be used in production with the language that it's developed in.
One advantage that I can see is that it further isolates that code being developed from the test itself.  By separating the act of writing the test even further from the actual code under development, it forces you to really consider how the code should be written to pass the test rather than simply moving the initial development of the code into the test itself.
What are the (dis)advantages of writing unit tests in a different language to the code?