A união será mais rápida, pois simplesmente passa a primeira instrução SELECT e, em seguida, analisa a segunda instrução SELECT e adiciona os resultados ao final da tabela de saída.
O Join passará por cada linha de ambas as tabelas, encontrando correspondências na outra tabela, portanto, precisando de muito mais processamento devido à busca de linhas correspondentes para cada linha.
EDITAR
Por União, quero dizer União Todos, pois parecia adequado para o que você estava tentando alcançar. Embora uma União normal seja geralmente mais rápida que a Junta.
EDIT 2 (Responder ao comentário de @seebiscuit)
Eu não concordo com ele. Tecnicamente falando, não importa quão boa seja sua junção, um "JOIN" ainda é mais caro do que uma concatenação pura. Fiz uma postagem no blog para provar isso no meu blog codePERF[dot]net . Praticamente falando, eles atendem a 2 propósitos completamente diferentes e é mais importante garantir que sua indexação esteja correta e usando a ferramenta certa para o trabalho.
Tecnicamente, acho que pode ser resumido usando os 2 planos de execução a seguir retirados da minha postagem no blog:
UNION ALL
Plano de Execução

JOIN
Plano de Execução

Resultados práticos
Praticamente falando, a diferença em uma pesquisa de índice clusterizado é insignificante:
