Вопрос уровня "в чём преимущества грибов над ягодами?" Это просто разные вещи со своими особенностями и нюансами, и нет смысла говорить о преимуществе одних или других без конкретного описания условий и требований.
На самом деле процесс и поток в реализации конкретной OS могут быть близки до такой степени, что потоки могут быть видны даже в списке процессов. Поэтому вполне можно сказать, что это практически одно и то же. Но не совсем.
Для создания нового процесса в UNIX-системах делаетя вызов fork, который создаёт полную копию текущего процесса, включая его код и данные (в других системах может не быть fork, но есть свои способы создания процесса). Для создания же нового потока также делается новый "процесс", но вместо копии данных и кода в нём передаётся ссылка на те же самые данные и код (очень по-питоновски - ссылка вместо deepcopy данных). Поэтому потоки могут работать с одними и теми же данными, а самостоятельные процессы нет. Но иногда это как раз и нужно. Например, потоки должны как-то отслеживать конфликты с доступом к одним и тем же данным, а для процессов такой проблемы не стоит.
Отдельно надо сказать, что понятие потоков и процессов в разных языках может быть реализовано не так, как это реализовано на уровне операционной системы. Например, JVM умеет делать потоки даже на системах без поддержки многозадачности. Она просто имитирует их внутри себя. Это же машина, виртуалка такая.