It’s because my job involves managing and operating systems that are only accessible through ssh or tty sessions. I spend hours every day in a terminal, on a remote session, frequently editing files for stuff: crontabs, configs, etc.
I learned vi because when I was coming up, university systems only had ed, vi and emacs, with pico on the servers that had pine for email. I learned vi because it was more powerful than pico (and because I couldn’t get the hang of emacs key combos). I read the help files and learned how to use it, because it was foundational.
Every Unix-like system has a variant of vi. Many of my container images don’t, but it’s trivial to install and use anywhere if needed.
It’s just a more powerful tool than nano, and consequently more difficult to use. Which is fine, man. It’s okay for you to use a basic text editor on the rare occasion you have to edit something in a terminal. You don’t have cause to learn how to be productive in an advanced editor, and that’s fine.
For what it’s worth, when I’m writing and testing python, I use VS Code.