Why OP_RETURN should be used instead of raw data?
There are two reasons why you should prefer a scriptPubKey of OP_RETURN &lt;data&gt; over &lt;data&gt;.

The first reason is that the non-OP_RETURN output is not prunable, and is actually anyone-can-spend if the data is non-zero. Non-prunable outputs make the unspent transaction set larger, which slows down initial block verification and block propagation times.

The second reason is that the non-OP_RETURN output is nonstandard, meaning that not all miners will mine it. Therefore, it will take longer to get into the blockchain.