In general, yes. A stored procedure is a SQL query that is created, stored, and
cached inside the database. Depending on the complexity of the query, the perf
gains will be anywhere from none to considerable, but it should never be slower.
In addition it allows you to tweak the query centrally, so that if you have
multiple copies of the web part and the query chages you don't have to change
every instance of the web part.