Динамическая библиотека на C загружается в оперативную память и затем её код исполняется напрямую (возможно, с некоторым преобразованием передаваемых структур из managed в unmanaged и обратно).
В случае с аналогичным кодом на C#, не происходит преобразования данных managed/unmanaged, но сам код при этом выполняется CLR, что может быть медленнее скомпилированного кода на C.
Если ваш код производит сложные вычисления, требующие минут или даже часов времени, рекомендую использовать библиотеки на C. В остальном - как будет удобнее.