vmfacts.virtual_machines é um dict .
with_items quando aplicado a dict itera apenas sobre as chaves.
Então:
- shell: "echo {{ vmfacts.virtual_machines[item].uuid }}"
with_items: "{{ vmfacts.virtual_machines }}"
Ou use melhor with_dict :
- shell: "echo {{ item.value.uuid }}"
with_dict: "{{ vmfacts.virtual_machines }}"