How can an optocoupler detect the zero cross point in an AC wave?
The rectifier 'rectifies' ('puts right' or 'corrects') the negative halves of the AC cycle to make the voltage always positive, but doesn't make it smooth. It still goes down to zero at the end of each half cycle. 

Here's the result of an LTspice simulation of your circuit:-



The blue trace is the 220V AC mains (divided by 20 to make the other traces more visible). Green is the rectifier output voltage, and red is the outocoupler output (ZVC).

The LED in the optocoupler shines light on the phototransistor, which then draws current proportional to the LED current. As the rectified voltage drops close to zero the LED gets less current, so the transistor draws less current and the voltage at pin 2 (ZVC) rises. This tells the Arduino that the mains cycle is close to the zero crossing point.

Optocouplers are used to safely send signals between circuits which operate on different voltages. This is called galvanic isolation because there is no direct electrical connection between the input and output. In this circuit the rectified voltage is still at mains potential so optocouplers are required to isolate the mains from the Arduino, allowing it to be connected to other equipment and handled without getting an electric shock.

The MCT2e is a standard optocoupler (similar to 4N25 etc.) with a minimum current transfer ratio (CTR) of 20%. Any optocoupler with similar specs should work fine. If you use an optocoupler with much higher CTR then the zero crossing pulse will be a bit wider due to its greater sensitivity.