Basically its going to be a quite a bit of performance hit as in your stored procedure where you used dynamic sql, the plans are not used its a better option to use sp_executesql if you opt to go for dynamic sql for some reasons of desparation to accomplish some task which you believe cannot be achieved without dynamic sql.
It is always wise to avoid dynamic sql not only from performance perspective but as from security perspective. There are several articles on dynamic sql and its cons for you to really get in depth view of what I meant in the above statements.
Prasad Bhogadi
www.inforaise.com