Di solito i join funzioneranno più velocemente delle query interne, ma in realtà dipenderanno dal piano di esecuzione generato da SQL Server. Indipendentemente da come scrivi la tua query, SQL Server la trasformerà sempre in un piano di esecuzione. Se è abbastanza "intelligente" da generare lo stesso piano da entrambe le query, otterrai lo stesso risultato.
Qui e qui alcuni link per aiutare.