I tried this in both WAB Portal version and Developer Edit, and he result seems the same. Here is what's shown in the Chrome console:
Further investigation reveals that the cause is the projection of the query result (wkid: 4326 in my case) is not the same as the map projection (wkid:102100).
In the code (exportToCSV function in _FeatureTable.js), it says:
<SPAN class="keyword token">var</SPAN> isSameProjection <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>layer<SPAN class="punctuation token">.</SPAN>fullExtent<SPAN class="punctuation token">.</SPAN>spatialReference<SPAN class="punctuation token">.</SPAN><SPAN class="token function">equals</SPAN><SPAN class="punctuation token">(</SPAN>
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>map<SPAN class="punctuation token">.</SPAN>extent<SPAN class="punctuation token">.</SPAN>spatialReference<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">var</SPAN> hasArcadeExpressionFields <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">_hasArcadeExpressionFields</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>