Because they need runtime support from the engine, e.g. you need engine support in order to intercept calls like:
obj[prop] = 'foo'
where prop is user input or similar. You could technically compile them away if you replaced all property set/gets with code like set(obj, prop, "foo")
get(obj, prop)
with a babel step, but the performance impact of this (both in runtime and compile-time) would be enormous.