OP_RETURNs are easier on your mempool.
OP_RETURNs are the worst way to store images and whatever else you have in mind (expensive).
OP_RETURNs are immediately prunable from the UTXO database since they can never be spent
OP_RETURNs are more honest than fake addresses or other data-embedding tricks that pollute the UTXO set
OP_RETURNs are easier to filter and identify compared to data hidden in other transaction components
OP_RETURNs don't require address validation, simplifying transaction construction for data-only purposes
OP_RETURNs are transparent about their purpose as they clearly signal "this is data, not a payment"


