What are the technical reasons why languages like Python and Ruby are interpreted (out of the box) instead of compiled? It seems to me like it should not be too hard for people knowledgeable in this domain to make these languages not be interpreted like they are today, and we would see significant performance gains. So certainly I am missing something.
By design. 
The authors wanted something where they can write scripts into.
Python gets compiled the first time it is executed though
Why is (python|ruby) interpreted?