W końcu wyciągnąłem kod źródłowy dla MySql Connector / .NET i odkryłem, że jeśli MySqlCommand.Connection.Settings.IgnorePrepare =true (co jest wartością domyślną!), wywołanie Prepare nie jest opcją.
Sposobem na rozwiązanie tego jest jawne ustawienie IgnorePrepare na false w parametrach połączenia. Można to zrobić dość łatwo za pomocą MySqlConnectionStringBuilder za pomocą następującego fragmentu kodu:
MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();
// .. set up the rest of your connection
connBuilder.IgnorePrepare = false;
MySqlConnection conn = new MySqlConnection(connBuilder.ToString());