1. Because that's what's typically deployed on servers I use.
2. Chose that for servers because the packages tend to work more often with more sensible settings. Whenever I try to switch to a less popular distro that doesn't use the Ubuntu software repos I find that packages either don't just work or that the defaults are less usable. This even applies to Debian distros.
Other distros have other advantages and I use them in special contexts.
I was always Ubuntu user. I tried a lot of distros but never liked them that much and always bounced back to Ubuntu which make most sense to me. I loved old Gnome2 Ubuntu and I actually very enjoyed Unity. I couldn't force myself to like Gnome3 on other distros. There was always to many crashes for everyday use, problems with upgrading extensions, and overall bad design (to big buttons and bars, interface made for touch screens). So when Ubuntu announced big move to Gnome3 I jumped to Ubuntu Mate on closest LTS release which was 18.04. I love that distro. Interface is going out of my way and most of all is designed with desktops in mind. The buttons are small, the status bar is thin, I can have useful information on the screen instead of useless borders and paddings.
<drops mic> ... <picks up mic>
I started a long time ago with RedHat4 (not RHEL) - like the late 90's I think... Went to Slackware for a while then Gentoo then Ubuntu
finally settled on Debian, been using at work and home since Squeeze (at home), just went native at work in Aug 2018.
Ubuntu on the Linodes though.
I love that distribution. The package management is ideal. Not so much because of the fact one compiles everything, but more so because of fine grained control of that which is installed and how it is installed.
GNU/Linux BBQ
Debian GNU/Linux (testing through experimental)
CentOS
Bananian
OpenBSD
Keep life simple
It's the distribution that's taught me the most about linux in general. I feel a lot of freedom here. Not only because of what it's taught me, but also because the tools are very simple and easy to combine to do useful things.
Maybe it's also the case in other distributions, but in Archlinux every file in the filesystem after initial installation belongs to a package. That means that I can create Archlinux containers with the package manager. And every installation corruption (because power went out during an update, for example) can be fixed with the package manager without needing to reformat or whatnot. This becomes very clear through their very barebones installation procedure, which is just leaving you in the shell with instructions in ~/install.txt, instead of putting you through an installation wizard that leaves you wondering the concrete steps that it did.
Also, packages are simple tar archives, and how the source is downloaded and built is described in a shell script with detailed conventions. I can take the name of any package, and, in uniform fashion, download the source, make modifications, create a patch of them if I want or just build the package from the modified sources, and install. Creating a personal package repo is also very easy.
Everything just does one job and doesn't make a mess of things, like how Ubuntu oftentimes automatically starts services when you install them. Archlinux also doesn't make it's own conventions on how the system should be administered and by what files, like Ubuntu with its ifup, ifdown scripts and /etc/network/* files.
If I want to know how to use a package, I only need to look at that package's documentation and not also at how the distribution idealizes my use of it, like how Ubuntu has you making symbolic links between /etc/apache2/sites-available and /etc/apache2/sites-enabled with the Debian-originated scripts a2ensite and a2dissite.
On a related note, I've been thinking of moving to NixOS (or GuixSD) for their declarative configurations, but haven't because of the time investment that it would require. Last I tried NixOS, I remember being met with some very fundamental/unavoidable flaws/features that put me off a little. In particular, I remember that if I wanted to make a change (however trivial) in a package many other packages depended on, it would mean that those dependent packages would need to be rebuilt. This is cool since it ensures the consistency of the whole system, but it takes so damn long to see those changes in the dependent packages that it's so annoying. In Archlinux, you'd just be taking the risk that you might've broken the system, but letting me take that risk is much more efficient.