The difficulty here is that Queues do have the semantics of being ordered, but that ordering isn't always manifest in the iteration order of the queue. Defining equals() and hashCode() for an ordered collection pretty much requires iterating the elements in their semantic order. If you can't iterate elements in their semantic order, you can't define a reasonable equals() or hashCode() contract.
PriorityQueue is a good example of this. The elements' semantic order is defined by the provided comparator or by the elements' natural ordering. However, the iteration order of a PriorityQueue is undefined!
The iterator does not return the elements in any particular order.
The reason is that a PriorityQueue is heap data structure stored in an array. The elements aren't stored in order. They're stored in a way that meets the heap invariant, which is weaker than total ordering. There are many different ways the same elements can be stored in a heap representing the same semantic ordering. You can get the elements of a PriorityQueue in their semantic order by extracting them from the queue -- which has the side effect of destroying the queue.
I suppose one could define equals() and hashCode() of a queue by using the semantic order and applying rules similar to that of List. For PriorityQueue, this would require creating a temporary copy of the array and sorting it on each call. I suspect this is too onerous; many programmers would be surprised to learn that computing a hash code of a PriorityQueue would take O(n log n) time and O(n) temporary space. For this reason I suspect equals() and hashCode() for Queue were left unspecified, to inherit the identity-based versions from Object.