I'd say TSM mirroring is better because hardware mirroring doesn't protect against software faults.
We've got a single copy of the database and log volumes on a very reliable RAID. However, something, either TSM or the OS, corrupted one of the database volumes. The RAID doesn't care- it's garbage-in, garbage-out. By mirroring at the application level, you get some checking (AFAICT) by TSM to make sure that things are consistent.
You can (with roll-forward) also recover single database volumes from a mirror.
Personally, I'd suggest TSM mirroring. That's the way we'll be going from now on.
HTH.