Есть различные идеологии сборки проектов. Будь то папки dev, dist, public, production или еще какие либо. Но в основном отличие этих сборок следующее: в приведенном примере, предположительно, public — сборка проекта для отладки, а build — для продакшна, где исходные файлы минифицирются (например, JavaScript), и при этом процесс отладки сильно усложняется, когда вместо привычного Вам пойнтера на баг выдаётся пойнтер на неизвестную минифицированную точку кода.