Here are a couple of reasons:
- C and C++ projects often predate Gradle by decades they will not change their build system without a compelling reason.
- Gradle is written in Java and requires a Java Runtime.
- At least for C++, CMake has pretty much become the standard build tool.
- Dependency resolution on Linux was 'solved' by relying on the distribution. Today, there also exist package managers for C and C++ like vcpkg or conan and they also integrate with CMake.
I worked on a couple commercial C++ applications that used vcpkg. It's not as convenient as nuget, cargo or npm but it think it is a massive improvement over manually hunting for dependencies.