dynamic SQL needs to be parsed before execution each time whereas a stored procedure generates an execution plan which it reuses each subsequent execution improving its performance.
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook (No, I'm not Rick)