Why do you expect them to be identical?
There are no guarantees about synchronization between mempool contents. In fact, if there was, we wouldn't need a blockchain at all. We'd just use "time of entering mempool" to order transactions.
Transactions are relayed across the network, but under various conditions, and usually the mempool contents reflects what a node decided to relay.
Reasons for variations between nodes:
- Only the first of two double spends will typically enter the mempool (but some nodes use different policies, such a replace by fee).
- There are various versions of nodes out there, with different relay fee requirements.
- In some cases, relay is subjected to rate limiting, which means arbitrary dropping of transactions.
- Standardness rules have changed over time, changing which types of transactions are accepted into the mempool.