That this would work in c# means it automatically prevents you from adding elements to the collection, or that it is doing something it shouldn't be, or it doesn't care :P
The reason it doesn't compile in haxe is if it 'did' you would be allowed to do:
var x:Vector<A> = ...;
var y:Vector<MyBaseClass> = x;
y.push(new B()); // fine, B extends MyBaseClass.
But of course, that last line is completely wrong, y 'actually' points to a Vector<A> and it is 'not okay' to add a B to it.
The only way to correctly do this, is to provide an immutable reference to the Vector<A> (Similar to how Iterator works in Haxe already) and infact, you can use Iteratable for this already if you're using Array instead of Vector.
function f(xs:Iterable<MyBaseClass>) { }
var x:Array<A> = ...;
f(x); // compiles just fine.
It won't work for Vector, at least not at present as the abstract doesn't expose an iterator (Iterable<T> is defined as { iterator : Void -> Iterator<T> }, Iterator<T> as { next : Void -> T, hasNext : Void -> Bool })