Ideally the nickname should become the "nicename" and it should figure in "the_author_posts_link".
Unfortunately WordPress doesn't do that way. Even though the nickname or the display name gets displayed in the blog's metadata, the link-text shows only the username which is not a desirable situation.
To get the nickname or the display name to be part of the link (as indicated by you), you'll have to edit the database - edit "user_nicename" in table -> "wp_users". Pundits will frown upon me for having suggested this, but before poking into the database, please make a backup.
May be someone else has a more elegant method to suggest.
Cheers!
S.K