How do you calculate the updates frame by frame so that no matter where the target moves to the effect is always heading toward them?
Pretty much just literally implement that description as code, and that's a reasonable way to do it.
Keep a reference to both the effect and the target of that effect.
Get the difference in position between them, and tell the effect to move in that direction each frame.
You can either base the projectile's speed on the total time-of-flight that you compute at launch (which means you just do some basic interpolation each frame), or you can actually have the projectile "drive" towards the target with whatever kind of seeking logic you want (head straight towards the target, continuously lead the target, etc).
In the arcing effect seen in the video, you could first compute the straight line along the ground to your target, and then set the height as a curve above that straight line. If the target moves, the "straight line" updates itself, and the arc height calculation stays the same.
Remember, when dealing with visual effects you don't NEED to realistically model the position of the projectile. You can fake it as much as you need to until it looks good enough.