A reach
I think you mean LEN([dmn].[DOMAIN])
It should not matter but maybe use
[DOMAIN] [nvarchar](75) NOT NULL
and make it a clustered index
UPDATE dt
SET dt.[accept] = case
when [dmn].[DOMAIN] is not null
THEN 'NO''Yes'
ELSE 'Yes''NO'
END
FROM [dbo].[Data] dt
LEFT JOIN dbo].[Domains] dmn
on [dmn].[DOMAIN] = SUBSTRING([dt].[email], CHARINDEX('@', [dt].[email]) + 1+1, LEN([dmn].[DOMAIN]))
WHERE dt.[accept] is null