Why do German teams have the team name on the back of there shirts?
Because they have to. It's a league rule, Bundesliga teams have to have the club or city name on the back of their shirt - either above or below the number. But of course, for European games, they have to have shirts without the club or city name, as per UEFA rule!
Next season, Dortmund are going to switch around the order, they are moving their players name to below the number, and the city name to the top.
Anyway, a new shirt, but only a short term one, Bayer 04 Leverkusen's throwback shirt, that they will wear tomorrow: