Si hay una
pequeña diferencia.
Al estar el insert/update dentro de un stored procedure, este normalmente ya estará verificado y hasta "compilado", con lo que el motor ahorrará el tiempo que toma realizar el análisis sintáctico de la sentencia y la creación de un plan de ejecución (si lo hay).
Normalmente este tiempo no es mas que unos cuantos milisegundos, pero si hablamos de miles o millones de inserciones/actualizaciones, claro que puede hacer la diferencia, no solo por el menor tiempo que tomará cada instrucción, sino por la menor carga que mantendrá el servidor (que la combinación de estos factores puede ser exponencial)
Todo depende siempre del entorno y en la arena de las bases de datos no hay nada que aplique para todas por igual.
Por ejemplo, en algunas aplicaciones se puede logar este efecto, manteniendo preparada la consulta del lado del cliente, y variando únicamente los parámetros.
Algunos motores mantienen un cache de consultas preparadas, lo que hace mas ágil el proceso cuando una misma consulta se lanza desde diversos clientes. En esto, es muy interesante el funcionamiento de Oracle, que es simple, tanto que hasta es bastante tonto, pero cuando lo conoces, podes sacarle el jugo muy bien.
Espero haber aclarado algo, y no confundir con esto.
Hasta luego.