Translacja X->Y:
transpiler: X i Y są na podobmym poziomie abstrakcji (np: java -> c#)
kompilator: X jest na wyższym a Y na niższym (np: c -> kod maszynowy)
źródło (pierwszy akapit bardzo dobrze wyjaśnia): https://en.wikipedia.org/wiki/Source-to-source_compiler
Natomiast interpreter raczej dobrze opisałeś.
Więc generalnie masz dobrą intuicję. SASS wydaje mi się, że jest na mniej więcej tym samym poziomie abstrakcji co CSS więc bym go nazwał transpilerem a nie kompilatorem - jeśli już mamy być super dokładni i szczegółowi. Śliskim tematem jest natomiast określenie co jest na tym samym lub podobnym poziomie abstrakcji a co nie i wydaje mi się, że być może autor zna tak dobrze SASS i CSS, że dla niego to są dwie różne bajki i dwa zupełnie różne poziomy abstrakcji. Stąd też bym nie trzymał się tak kurczowo tych definicji, bo najprawdopodobniej w kursie o którym wspomniałeś nie to jest najważniejsze Na pewno dobrze jest znać te definicje i rozumieć, aby wiedzieć kiedy którego określenia używać, ale ja bym śmiertelnie do tego nie podchodził jeśli chodzi o szczegóły, bo tak naprawdę jeśli nie piszemy kompilatora/transpilera to różnica między nimi nie jest aż tak wielka jak nam się wydaje
Ale widzę, że np wikipedia SASSa nazywa skryptowym językiem interpretowanym lub kompilowanym. I osobiście bym się trzymał tej definicji (zakładam, że artykuł pisał ekspert).
Źródło: https://en.wikipedia.org/wiki/Sass_(stylesheet_language)
Ale jednocześnie w świecie gdzie sami nie piszemy kompilatorów/transpilerów to bym zaakceptował jeśli ktoś by nazwał Sassa transpilerem czy kompilatorem i tak naprawdę moim zdaniem można obu tych terminów używać zamiennie w stosunku do Sassa. Chyba, że zwyczajowo i powszechnie przyjęło się określenie "kompilator" to wtedy bym używał tylko określenia "kompilator" kiedy mówimy o Sassie.