Bug introduced in 8 or earlier and persisting through 11.2.0
I'm using Linux-x86-64 as operating system. Can someone explain this behaviour and maybe give a hint how to resolve it? Here are two lines of exact the same number of letters of a monospaced font:
Style["ZZZZZZZZZZ\n__________", 20, FontFamily -> "Courier"] As output I get (here with 30 Z and 30 _)

But what I expect from a monospaced font like Courier is to have the same size for every letter (and why is the line dashed anyway?). @Oleksandr was so kind to give me mental support and tried the things on his Windows machine. There the output seems ok:

More detailed question
What I really want is an image of arbitrary resolution of every letter. I thought when I use a combination of Style and Rasterize I can get equally sized images of them in exact the same form as they appear in text.
But there is (at least here) a clear difference between an assembled image from rasterized letters and a rasterized version of the string
ImageAssemble[ Rasterize[Style[#, 30, FontFamily -> "Courier"], "Image"] & /@ CharacterRange["A", "Z"]] Rasterize[ Style[StringJoin[CharacterRange["A", "Z"]], 30, FontFamily -> "Courier"], "Image"]

What I noticed is that the height of the letters is always the same, only the width varies. Looking at how many letters have which width gives here
Sort@Tally@First@ Transpose[ ImageDimensions[ Rasterize[Style[#, 30, FontFamily -> "Courier"], "Image"]] & /@ CharacterRange["A", "z"]] (* Out[138]= {{18, 25}, {19, 16}, {20, 8}, {21, 8}, {24, 1}} *) This is a mess. Any ideas about this issue would be very welcome.