В общем, разница в том, что виртуальные методы вызываются с использованием кода операции Callvirt, тогда как не виртуальные методы используют стандартный код операции вызова. Call Opcodes определенно быстрее, чем Callvirt, но я никогда не считал, что он достаточно существенен, чтобы оправдывать принятие проектных решений на основе этого.
Premature optimization is the root of all evil.