Before you call EXECUTE with a character string, validate the character string. Never execute a command constructed from user input that has not been validated. For more information, see SQL Injection.
binding parameters allows Microsoft® SQL Server™ to cache the query plan of the stored procedure in most cases. you can use a profiler to see the speed difference. you should do this anyway.
executing queries in the way you have shown will cause the query plan to be regenerated for each call of the stored procedure having different parameters. it is also stupid when a parameter binding interface written by the company that wrote the sql server you are using exists for you to use instead. if you are going to be a talented corporate whore , you have to do more than blow people. you have to go all the way.