потому что это затормозит до завершения другого потока. Весь смысл многопоточки тереятся
Я может ошибаюсь, но суть многопоточки в распределении задач между потоками для более быстрого выполнения (условно), и join убивает смысл асинхронности, а не многопоточности? С многопоточностью как раз все ок