The accused, named as Ahmad A., killed one and wounded six in the July assault, and was arrested after passers-by overpowered him.
“The results of the investigation show that the accused sought out his victims indiscriminately, retaliating against people, who in his view represent perpetrators of injustice targeting Muslims,” said prosecutors.
“It was important to him to kill as many German nationals of the Christian faith as possible. He wanted his actions to be viewed in the context of an Islamist attack, and understood as a contribution to jihad worldwide,” they added.
Investigators, however, did not find any evidence to suggest that A. was a member of the Isis terror group, said the prosecution service, charging the man with murder, as well as six counts of attempted murder and grievous bodily harm.
He risks life in prison, although Germany often grants parole after 15 years.
The assault in the northern port city was the first Islamist attack in Germany since Tunisian Anis Amri drove a truck into crowds at a Berlin Christmas market on December 19th, killing 12 and injuring 48.
Germany has been on high alert over the threat of a jihadist assault since Amri's rampage, for which Isis claimed responsibility.
Like Amri, Ahmad A. was to have been deported after his asylum application was rejected by authorities, but the process was held up by a lack of identity documents.
The attacks have piled pressure on Chancellor Angela Merkel over her decision to allow in more than a million asylum seekers since 2015.
Railing against the migrants, the Islamophobic party AfD snatched over 90 seats in September's general elections – the best showing for a far-right party in Germany since the end of World War II.