Clustered indexed fields hash matching. Does it matter?
SQL Server is very good at deciding the best, most efficient execution plan for any given query.  Since you have no predicates, such as a WHERE D500M.PERSON_REF = 123456, SQL Server is most likely assuming an index scan is the quickest way to gather all the relevant details from each table.  If you add a predicate to the query, you will most likely see an index seek instead.  This is to be expected.

"Good, bad or irrelevant" is only something you can decide.  Is the performance acceptable for your needs?

You could try forcing the join type to see what happens if a loop join or a merge join were used instead.  Something like:

SELECT p.PERSON_REF, p.surname, p.first_forname, e.employee_number, ph.MAIN_FLAG
FROM D500M p
INNER LOOP JOIN D550M e ON e.PERSON_REF=p.PERSON_REF
INNER LOOP JOIN D580M ph ON ph.PERSON_REF=p.PERSON_REF


If you want a more conclusive answer, you should provide code for a minimally complete verifiable environment that matches your environment. i.e. provide us table definitions, the actual queries involved, and the actual query plans you're seeing.