Hola eloy_ameneiros:
Según tu declaración, la variable @Servicio es de tipo varchar, por lo tanto la asignación debes hacerla así:
Código SQL:
Ver originalSET @servicio = '(SELECT Servicio FROM VERIFICACION_VENTAS.dbo.Servicios WHERE Uid = ' + @contador + ')'
SET @query = 'select * from ' + @servicio
EXEC sp_executesql @query
Es decir, en el SET @servicio falta ponerle las comillas simples.
No le veo mucho caso a utilizar dos variables para formar tu consulta, pero eso depende de tu lógica de negocio. También hay otro detalle, si no mal recuerdo el procedimiento almacenad SP_EXECUTESQL recibe como parámetro una variable tipo UNICODE, por lo que el tipo debería ser NVARCHAR. No estoy seguro si marca error o no, pero es cuestión de que lo pruebes.
Saludos
Leo.