What's wrong with each providing a run method?
Nothing. However, there is a LOT wrong with weakly typed variables and not requiring arguments to be of certain types, just because they all have 'run' methods does not mean I should be able to interchange programs and dogs. That's just asking for trouble.
This'll throw a runtime error for perl 6. If we can wedge it in, we may do it for perl 5 as well under Ponie, but I wouldn't hold your breath there.
There's a chance that this might also throw a compile time error, but that's even less likely. Possibly a warning, but as there really isn't enough information at compile time to emit one with any reliability... probably not.