The answer to that is wildly context dependent. You need to go "up a level" to answer it for real.
When programming any sort of entity, you need to design it to have ONE main source of control. There should never be two "controllers" ultimately telling the game object what to do directly.
So if it's just an animation FSM, then it's usually perfectly fine to have interrupts and switch state from outside because the FSM itself is mostly a cosmetic thing that ultimately doesn't effect anything else (sans if you have events triggered by animation frames, which is a bad idea usually imo).
If it's an entitystate/AI controller, you should try and keep that as self-driven as possible. It can poll for and respond to external events and triggers, but in general, nothing else should be directly controlling what it does.