The only real disadvantage is portability, perhaps speed (e.g. PerlIO::gzip is faster than calling gzip itself, and if youre shelling out multiple times, itll generally be slower than simply using a module).
Additionally, if youre passing user-provided arguments to the outside command and arent doing things "properly", that is, you arent using IPC::Cmd, IPC::Run, or multi-arg open, you have a potential security hole in your program.
But if what youre doing doesnt gain any advantages from increased portability or security, theres nothing wrong with calling a system command.