They both be used in certain cases, but there is a slight difference.
'Criminal' is general. It is a person who perpetrates one or more illegal acts. I am usually not specific about which acts.
'Perpetrator' is more specific. I use perpetrator to refer to a person who has committed a specific act or a number of specific acts. If I said I was looking for the person that robbed a bank, I would say that I was looking for the perpetrator, not the criminal. I could say 'criminal', but it would sound strange.