For the most part, JPA returns an entity for each row you've selected from the database, so when joining to a 1:M or M:M relationship, you will get more than one instance of an object back. In this case, a Faculty has many preferredTimes. If faculty1 has preferredTimeA and preferredTimeC while faculty2 has preferredTimeB and preferredTimeD, you would get an ordered list of (faculty1, faculty2, faculty1, faculty2) because of the join and ordering you specified.
The DISTINCT keyword is used to filter out non-distinct entities/rows:
"SELECT DISTINCT f FROM Faculty f JOIN f.preferredTimes p ORDER BY p.day, p.startTime"