transfer, the older of the two commands, creates a single transaction. This can fail if you try to create a transaction with too many destinations / the transaction becomes too large.
transfer_split may create more than one transaction. This is useful if you are wanting to create transactions with a higher number of destinations as it can efficiently split the the transfer, as necessary, into multiple transactions.
If you are only ever doing single destination transfers, you can safely use either. If you need to create transfers to multiple destinations, it's safer to just use
IIRC, the only reason
transfer still exists is for backwards compatibility, i.e. to not break existing applications that were built before
transfer_split was added.