It's partly a historical reason as well. There are many projects with very complex Makefiles. Those are hard to integrate into your own project.
Header-only is the other extreme: No makefile at all.
With package managers like Conan and vcpkg, using a build-system like e.g. CMake, it's possible to have very simple and short project files which are easy to integrate.
In this regard, C and C++ are a bit behind the times compared to other languages.