I am not a native speaker, but for me the distinction is (maybe better names should be chosen):
mutate: at start retains all columns from the source and adds/modifies columns following the specificationtransform: starts with an empty table and only adds what was specified
EDIT we could have keep kwarg to differentiate these behavior a la SAS.