É até uma conclusão óbvia. Pense comigo:
Se ao disparar uma Thread, ela executasse até terminar, sem ser interrompida, então qual seria a diferença de uma thread e de uma chamada de método?
Nenhuma. Afinal, a thread disparada monopolizaria o processador, e só retornaria a quem disparou após terminar o processamento. Nada rodou em paralelo.
O processamento multi-threading, com um único processador, funciona por time-sharing. Ou seja, uma thread executa um pedacinho do seu código. Então, o processador pára essa execução e troca para outra thread, que executa outro pedacinho. As duas vão se alternando, executando um pouquinho por vez, até que ambas concluem seu processo algum dia.
Com multiplos processadores, cada thread pode ser jogada a um processador diferente. E a execução efetivamente ocorre em paralelo. Para o código que disparou a thread, não sobra qualquer garantia de quando aquela thread roda, nem quando termina. O método start() da classe Thread retorna imediatamente e, a partir daí, temos dois códigos rodando em paralelo.