The two are different things.
MyItem.sendCommand([command]) is a method on an Item and it can accept any valid data that Items of that type can accept. If you have a reference to an Item this is the better way to send a command because it is much better able to convert from various data types to a form the Item can understand.
sendCommand([itemName], [command]) is an action which is a generic way to send a command to an Item of the given name. Because it is completely generic it is limited in how well it can convert from various data types to what Items can understand so it really only accepts Strings. However, the language interpreter will call toString on objects automatically if you try to pass it some other type. However, it will completely fail if you try to send it a primitive number (long, double, short, int, etc) because there is not toString.