There are three thing that make Twine great:
The Visual node-based layout
The use of variables in text and links
The ability to work quickly using the text-based code
Let's compare this to the Unity Animator:
This means that we are very much able to substitute twine with the Unity Animator in order to create the game logic the will give and organise the player choices that are made throughout his play through.
Above is an example of the node-based interface. Since the game is devided up into multiple characters you can see that naming convention is as well, into Hungry and Steve. The double arrows you see are the "Switch Character" options, which will be activated using the WorldSwitch mechanic.
Here is the node itself, which at this point has two scripts attached: to display a few lines of text and to give a few options. I can add as many events as I want and add sripts to move the players, NPC's, change the music, ... Pretty much anything I would ever want.
Another great thing is the way that it stores the variables: a massive list. This might get confusing and difficult to navigate through later, but it always being present means that I can store the variables across scenes and the entire game to be used and checked whenever I need them.
More useful, however, and better when compared to Twine, is that I can make in-game events to set variables. I don't have to give a "move to the house" option when the player can move the character to the house using a controller.
Also good to have is the 'trigger' functionality for anything that need to happen once and be immediately reset. Good for anything recurring like the WorldSwitch trigger.