Is there a word in English that describes a person who never attains a desire or goal?
I have found loser or dud or flop but these all seem to be informal, is there a better, more formal word that describes such a thing?
If you're willing to use an eponym, consider referring to the person as "a Sisyphus." Here is the entry for Sisyphus in Merriam-Webster's Eleventh Collegiate Dictionary (2003):
Sisyphus (14c) : a legendary king of Corinth condemned eternally to repeat the cycle of rolling a heavy rock up a hill in Hades only to have it roll down again as it nears the top
This noun has yielded the adjective Sisyphean, as well, meaning, according to the Eleventh Collegiate:
of, relating to, or suggestive of the labors of Sisyphus
The crucial characteristic of a Sisyphus is the person's inability to successfully complete a specified task (albeit, in the original Sisyphus's case, an impossible task imposed on him as a punishment for misdeeds in life). A Google Books search for "a Sisyphus" turns up examples like this one from Transactions of the National Safety Congress (1927):
The construction safety engineer cannot be a Sisyphus.
Sisyphus was the chap that was always falling down at the moment of supreme success. He could never get over the top.
And this one from Krishna: The Man and His Philosophy (2015):
A workoholic is a Sisyphus endlessly pushing a stone uphill and beginning again when it rolls down. He is now engaged in pushing the stone uphill and then chasing it when it rolls down and then beginning to push it up again.
How about "underachiever"?
underachieve verb, intrans to be less successful than expected, especially academically; to fail to fulfil one's potential. underachievement noun. underachiever noun.
If you're referring to someone who never attains their desires or goals then you might describe them as "a perennial underachiever".
If you're looking for someone that does not care about attaining goals, you might be looking for apathetic:
having little or no interest or concern --Merriam-Webster
Similarly, they might be unmotivated:
not having interest in or enthusiasm for something, especially work or study --Google
They might also be referred to as lackadaisical:
lacking enthusiasm and determination; carelessly lazy --Google
On the other hand, if you're looking for someone that cannot seem to obtain goals despite effort, the cause of the failure would probably have a name, such as unlucky (bad luck, poor circumstances), unskilled (lacking proper skills for a task, usually meaning unfit for employment in skilled labor), or unfit (not suited for a particular purpose), or a myriad of other words.
The term loser, and dud, are definitely informal when used in that context, and should be avoided unless you're intentionally trying to be offensive. A flop is a more formal term, but has a very limited context, mostly in the entertainment industry, to describe a performance or entertainer that has performed horribly-- it has nothing to do with achieving goals or motivation, but rather uninspired acting or poor execution.
What about "an underachiever"?
You could try "nonperformer": (noun) a person who does not succeed.