From my understanding, without getting in depth of how Mootools works, here is what happens:
When the js parser executes the line "MyClass = new Class.." it creates the native object that is passed to the Class function. In order to create this native object, it has to create an instance of a Hash, which gets assigned to the myHash property.
So far, we have a hash object created in memory and the result object returned by Class. This resulting object has a pointer to the Hash object in memory: the myHash property.
When you create new instances of this object, you are just cloning that pointer, which keeps pointing to the same Hash object in memory. Again, these two lines do not create a new instance of a Hash, but just clone the pointer to the original instance.
a = new MyClass();
b = new MyClass();
If I'm not mistaken, this would happen with any object instanced in the declaration of a class.
In the other hand, when you put something in the initialize method (class constructor), it does not get executed until the class (MyClass) is instantiated.
That's why, in general, class properties should be only static values and everything that requires instantiating new objects should be done in the constructor.
Please, let me know if I'm wrong.