Ansible 2.6: Is there a way to reference the playbook's name in a role task?

It was added in 2.8:

ansible_play_name
The name of the currently executed play. Added in 2.8.


No, the special variables for Ansible are documented here, and you can see that there is no variable to return the playbook name.

As mentioned in the comments, however, you can always do this:

---
- name: "{{ task_name }}"
  hosts: localhost
  vars:
    task_name: "Tasks for service XYZ"
  tasks:
    - debug:
        msg: "{{ task_name }}"

From your circumstances, it looks like you only want this for audit/notification purposes? In that case (and assuming unixy clients), using

lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')

will give you the entire command line that ansible-playbook was called with, parameters and all, which would include the playbook name. Depending on your circumstances, that might be a useful enough tradeoff.