The obj_surface is physic e no have sprite (only spr_custom);
^by "physics e" you don't mean physics enabled do you? Because a sprite index isn't going to do anything for physics I think, you'll need a fixture. Not that you'd want physics enabled probably, I just don't understand what is being said here and wanted to clarify
What is the collision code for the ball/surface, like what actually is used to detect collisions (place_meeting, collision event, etc)?
I would also not draw your surface to the screen after you have set your sprite_index, just to make sure have correctly attached the actual sprite to the object. If you don't see anything, your obj_surface did not transfer the sprite correctly.
Additionally, if you read the manual on sprite_create_from_surface it's going to create your bounding box for collisions automatically. Since you have a curve you will want to use
sprite_collision_mask and set it to precise collisions
Finally, google "destructible terrain tutorials game maker" and these should give you general guidance on this method, you might figure things out yourself without additional help if you check those out. Technically it's the opposite since you're adding, but the same principles will apply
Edit: oh duh, you need draw_self() in your draw event