First, it would be a burden to require users to have CLR installed on every single server on the network.  Not only that, but the database setting would have to be set to UNTRUSTWORTHY for the things MB needs to do; or else, we would have a far more complex scenario on hand, and that level of complication just for backups is not a good setup. 

Using SQL CLR would also put us in the business of having to support different .NET framework versions, which would also complicate things.

Cmdshell is the best choice because it’s simple to lock down to only administrators, and it adds no extra “gotchas”.  There were times when it would have been easier to use CLR, but we simply can’t require that everyone enables CLR. 

Just be sure to lock down cmdshell. For instructions on this, see this article by Sean: http://www.midnightdba.com/DBARant/?p=1243

And for further reading, here is the link to one of Sean’s rants on the topic: http://www.midnightdba.com/DBARant/?p=1204