There are two somewhat subtle issues here.
1) In the documentation for widgets is this statement:
Important limitation of GlowScript VPython: The bound function cannot contain the statements rate, sleep, pause, waitfor, get_library, or read_local_file, statements that require pausing during execution. This limitation does not apply to VPython 7.
Your Reset function doesn't explicitly contain such statements but it calls the Initialize function which does. The result is a program that GlowScript can't handle. The fundamental issue is that JavaScript, to which your VPython program is compiled to be able to run in the browser, does not permit "synchronous" infinite loops, which lock up the browser. A JavaScript library called Streamline is invoked to rewrite your program to have an "asynchronous" structure. Essentially, contents of your loop are moved to a separate function that is called every t/deltat seconds.
2) It's not a good idea for Reset to call Initialize, which has already been called. Without seeing the entire program I can't be sure, but it's quite likely that if you simply delete the call to Initialize in the Reset function the program will run correctly, in that the next execution of the loop will use the modified valules of ball.pos.y and ball.vel.y.
Bruce