To me, 고발 하다 sounds like I have something against someone especially something illegal, then accuse the of it.
신고하다 is like no matter if they harmed you or not, you just think that they're doing something wrong and you report them to the police or something.
But I'm not 100% sure cause I didn't major in Korean or something. I'm just a native speaker.