La pregunta era sobre el rendimiento, sin embargo, el título solo dice "vs", así que siento que tengo que agregar algunos puntos más, aunque algunos de ellos tienen opiniones.
Entonces, en base a estos, decidí seguir con la string.Formatmayor parte de mi código. Sin embargo, he preparado un método de extensión para tener una forma más fluida de codificar que me gusta mucho más. La implementación de la extensión es de una sola línea, y se ve simplemente así en uso.
var myErrorMessage = "Value must be less than {0:0.00} for field {1}".FormatWith(maximum, fieldName);
La interpolación es una gran característica, no me malinterpretes. Pero en mi opinión, brilla mejor en aquellos lenguajes que pierden la string.Formatcaracterística similar, por ejemplo, JavaScript.