By "sprites", I'm assuming you're referring to using instances as particles.
The problem with this is that instances take up significantly more memory. They have a lot of setup and initialization code which is run, and for replicating particle effects, you need to have them be updating every frame. Particles don't need to run much of the code that instances need to, and thus, they take up significantly less space in memory, and significantly less time is spent running through the step/draw events of each particle.
I'm not too familiar with Game Maker's backend programming, but I can tell you firsthand that particles are superior to "instance particles" in the vast majority of situations. They are more limited than what you can do using instances, but when using an instance in place of a regular particle, you need to always ask yourself why, and if it's worth the performance tradeoff.
And yes, you can assign sprites to your particles, as in custom graphics. It takes a bit more work and is pretty intermediate, but it's good some goooood stuff. Check up on the YYG docs here:
https://docs.yoyogames.com/source/dadiospice/002_reference/particles/particle types/part_type_sprite.html
HeartBeast on YouTube has also done some great video tutorials regarding how Game Maker's particle system works for more advanced uses, including use of sprites to create more interesting visual effects than the default emitters do.
As a side note, there are times when you may want to use instances in place of particles. For example, when your game uses delta time and you expect the framerate to change a lot during play. But in the vast majority of cases, particles are superior for drawing... well, particles.