El operador +=solo se aplica a tipos de datos numéricos en SQL Server. Documentación de Microsoft aquí
Para la concatenación de cadenas, debe escribir la asignación y la concatenación por separado.
DECLARE @sql nvarchar(max);
SELECT @sql = N'';
SELECT @sql = @sql + [definition] + N'
GO
'
FROM sys.sql_modules
WHERE OBJECT_NAME(object_id) LIKE 'dt%'
ORDER BY OBJECT_NAME(object_id);
PRINT @sql;
Además, si está ejecutando esta consulta en Management Studio, tenga en cuenta que existe un límite en el tamaño de los datos que devolverá (incluso en una instrucción de impresión). Entonces, si las definiciones de sus módulos exceden este límite, se truncarán en la salida.