Curl utiliza una biblioteca externa y tiene mucho más poder para personalizar la solicitud: encabezados personalizados, generación de solicitud POST, carga de archivos. Todo lo que necesitas debo decir.
Fopen se limita a solo hacer una solicitud GET de la url sin ninguna otra personalización.
En cuanto a la seguridad, CURL no está influenciada por la configuración de seguridad en PHP (como fopen forbidden of remote URLS y tal).
Las dos posibilidades le devuelven datos que puede utilizar de todas las formas que desee. Si realiza un agujero de seguridad en su proyecto, después de todo, es su culpa después de obtener los datos.
Además, no estoy muy seguro, pero creo que fopen no puede manejar las conexiones SSL (https).
Tanto fopen como CURL son compatibles con SSL (como notó Andy Shellam en un comentario a continuación).
La cuestión no es tanto lo que 'fopen' puede hacer, sino lo que pueden hacer los wrappers HTTP/HTTPS. Compruebe http://de.php.net/manual/en/wrappers.http.php – Gordon