How can I print the vocabulary name instead of the referenced term in a node template?
The vocabulary machine name is the bundle ID of the term, which you can get through the node object:

{{ node.field_taxo.entity.bundle }}


To load the label of the vocabulary:

{{ node.field_taxo.entity.vid.entity.label }}


This works only when the field has content. For an empty field you would have to dig into the field definition you get from the same field object and check whether the field is restricted to a single target bundle.