First, they both work great. There's nothing wrong with TFVC or Git. I would say that Git has really won the battle of which one to choose. Most new projects work with Git, even MS defaults new Azure DevOps projects to Git rather than TFVC.
TFS is the server product that does a lot. The version control protocol and system is TFVC. My complaints with it are that the tooling is clunky and cumbersome. The way it groups things together feels unintuitive to me. I find git makes more sense for simple flows and is easier to set up. It's also supported widely, and easily, on Windows, Linux, MacOS, and in lots of clients.
That being said, if you primarily work with MS stack tech, TFVC is fairly well integrated.
Note, I'm not a git expert. I still struggle with some concepts and myself into trouble at times, but I find it easier to get out of problem spaces than I do with TFVC, where I am even less of an expert.
In my career, I've used professionally, these:
- TFVC (lightly)
I've demo'd and played with mercurial as well.
For the most part, these all do the same thing. The way they do it, in terms of human interaction, is what mostly varies. The idea of how we version files doesn't change much.