Parce que EXEC sp_executesql
mettra en cache le plan de requête -- EXEC
Ne fera pas. Pour plus d'informations et une très bonne lecture, voir :
La mise en cache d'une requête signifie que la logistique de la requête est temporairement stockée et accélère l'exécution de la requête ultérieurement.