INSERT performance difference between temporary tables and table variable
The obvious difference between the two plans is that the fast one is parallel and the slower one serial.

This is one of the limitations of plans that insert into table variables. As mentioned in the comments (and it seems as though it had the desired effect) you could try doing 

INSERT INTO @DATA ( ... ) 
EXEC('SELECT .. FROM ...')


to see if that gets around the limitation.