While trying to create a function that would launch a (ghast) fireball in the direction the player was looking, I noticed that the fireballs slow down and stop. After more testing, It appears that fireballs summoned with direction/Motion or that have these tags stored to, don't travel indefinitely as fireballs usually do when launched by ghasts or punched by players.
I expected that when I ran "summon minecraft:fireball ^ ^ ^1 {ExplosionPower:2,life:1,direction:[1.0,0.0,0.0]}" the fireball would travel off at a constant speed
Instead, they slowed down and stopped after traveling a short distance. The distance they traveled before stopping scaled directly with the amount of motion. once stoped, they would still explode if a block was place on them.
To witness this, run summon minecraft:fireball ^ ^ ^1 {ExplosionPower:2,life:1,direction:[1.0,0.0,0.0]} and observe how it slows to a stop
Not a bug. Horizontal motion is damped for all entities. However, fireballs can be made to travel indefinitely by using the "power" tag: