Este es un error en SQL Server 2008. Use
insert @columns
select ColumnNames.value('.', 'nvarchar(300)') name
from @xColumns.nodes('/columns/name') T1(ColumnNames)
OPTION (OPTIMIZE FOR ( @xColumns = NULL ))
Esta solución es de un elemento en Microsoft Connect Site que también menciona que hay disponible una revisión para este problema de Eager Spool / XML Reader (bajo la marca de seguimiento 4130).
El motivo de la regresión del rendimiento se explica en un elemento de conexión diferente