One reason why that might not do what you want is that if you use cmd and you don’t include "shell": true, the first item in the cmd array is executed directly and the rest of the items are given as arguments. In that case one of the literal arguments to the command is the && argument, which is probably not what you want.
Adding "shell": true tells the underlying library to execute your command by passing it to the shell, which might work better.
Something else to note is that $file always expands to the name of the input file, so as written your command is compiling a file and then trying to run the file it just compiled instead of the output file, which may or may not be what you want.
I would try something like this:
{
"shell_cmd": "/Users/apple/Desktop/red-063.dms -c \"${file}\" && \"${file_path}/${file_base_name}\""
}
This uses shell_cmd instead, which is a shortcut for using cmd and specifying shell all at once. shell_cmd takes a single string for the entire command and it’s treated as if you entered it in the terminal; for that reason this adds \" around the file names to ensure that thinks work as expected if you have spaces in your filenames.
The part after the && expands to the path that your file is in, and the name of the file without the extension on it. Depending on what the output of the compiler is named, you may or may not need to stick an extension onto there to get it to find the correct file.