To be clear, you can still install Python 2 the usual way. The only thing that's changing is that it's not installed by default (and by extension, that none of the base system depends on it).
There is no /usr/bin/python in the default Ubuntu install. There's a /usr/bin/python3, and if you `apt install python` you can get /usr/bin/python. But all of the system's code that uses Python has been converted to Python 3.
Fabric is reacting to what the most conservative group or Linux users (sysadmins for RHEL) are asking for. That's why RHEL moving to Python 3 would be the last push needed.
> Fabric is reacting to what the most conservative group or Linux users (sysadmins for RHEL) are asking for.
I'm not familiar with the details, but does this mean that they're resisting patches to support 3.x? Given the existence of a fork it seems likely. It's not-at-all difficult to write a single Python package that works on both 2.7 and 3.x. Especially if you are willing to use `six`.
I'll admit that it's a little harder to stay compatible with earlier-than-2.7, though.
I think the actual argument against Py3-compatibility is exactly that: Fabric needs to support 2.6 because it is the default in RHEL/SLES versions which are still quite popular in enterprise environments and maintaining compatibility with both Py 2.6 and Py 3 is quite difficult, as you said.