The trigger node fires whenever the sun entity updates—this includes state and attribute changes. So, attributes like elevation or azimuth updating every couple of minutes are what’s causing your flow to trigger.
If you only care about the state change, switch to the simpler “events: state” node, which has the option “Ignore state change events when: Current state equals previous state.”
You can achieve the same with the “trigger: state” node by adding a condition: This entity → previous state → is not → above_horizon.