The documentation for <$fields> says that it is used *internally* by the TW core (in particular, the FileSavingMechanism). The 'template' param only accepts plain text and two special variable references ($name$ and $value$). It has very limited ability control the output format. Using <$list> allows you to provide whatever output formatting you like.
Also, you don't need to use <$wikify> to get the current tiddler's title, and you don't need to provide the tiddler="..." param to <$text> and <$view> because the <<currentTiddler>> is used by default. You can reduce the code to just 3 lines:
<$list filter="[<currentTiddler>fields[]] -[[text]]" variable="fieldname">
<$text text=<<fieldname>>/>: <$view field=<<fieldname>>/><br>
</$list>
enjoy,
-e
Eric Shulman
TiddlyTools: Small Tools for Big Ideas! (tm)
InsideTiddlyWiki: The Missing Manuals