Questo argomento è già stato trattato più volte, potresti essere interessato a leggere:
Sono simili in quanto entrambi sono ORM , ma EF è più "di livello enterprise" e di funzionalità completo di Linq. EF è più simile a NHibernate per quanto riguarda le funzionalità disponibili ed è maturato con il rilascio di .NET 4.0. Inoltre, una delle cose più importanti da tenere a mente è che Linq ti porterà nei guai se il tuo DBMS non fa parte della famiglia SQL Server (sia esso "Express" o "Compatto").
Modifica: come ha affermato @jkohlhepp nel commento qui sotto, Linq to SQL è in modalità di manutenzione (non Linq! grazie a Randy), quindi non ci saranno più nuove funzionalità, ma solo correzioni di bug. Pertanto, è consigliabile iniziare nuovi progetti con EF.