The .value attribute of a field is a rich text table. The alert[] function doesn't know anything about the .font property of a field you read rich text from; it could just as easily be a rich text table constructed on the fly by a script.
In a field, rich text runs with an empty string (the default) as their "font" cell are displayed using the font given by the field. The alert[] function always uses the "body" font for this purpose.
One way to get the behavior you appear to want is to write a function which patches all the default-font runs to use a specific font from a field. This in turn requires us to look up the font name from the deck:
on alert_from_field field do name:first extract key where value=field.font from deck.fonts alert[update font:name where !font from field.value] end
While testing this example I identified and patched a bug in Native-Decker which can cause crashes when attempting to render a very large amount of text or text with a very large font in an alert[] dialog. The fix will be in the next release, but until then exercise some caution.