Specialising the return type makes the subclass more strict - it will act as an A. However, restricting the Run method to accept only a subclass of the original argument makes B not act as an A.
Inheritance models an is-a relationship. Your code violates the Liskov Substitution principle.