You don't have to use CMake for Arduino, but you definitely can: GitHub - tttapa/Arduino-AVR-CMake: Compile Arduino AVR programs using CMake.
I’m hitting a wall though where a lot of projects posted to GitHub that I want to try implementing are provided as cmake files.
A majority of open-source C and C++ libraries are built using CMake, or at least support integration into a user's CMake project.
Sometimes this may indicate that these libraries are not specifically designed to be used with Arduino, but some Arduino libraries also include a CMakeLists.txt file that is used to build the tests etc. Even other libraries may be supported on Arduino, but can also be used in a more traditional C++ project, and include a CMakeLists.txt for such use cases (see e.g. How to use ArduinoJson with CMake?).
Not necessarily for complex projects. CMake is the de facto standard for building cross-platform C and C++ applications and libraries. Even for the simplest single-file C++ programs, it has significant advantages over low-level alternatives like Make.
As already stated, CMake builds much more than C programs.
And MicroPython does in fact use CMake as a build system for some of the targets: https://github.com/search?q=repo%3Amicropython%2Fmicropython+language%3ACMake&type=code