In this case it is caused by the city having a space at the front of the field. Even though technically the space is allowd in the CSV standard, the libraries that are used place this field in quotes to ensure that the user knows that there is a space leading or trailing the value in the field. Any standard CSV parser should be able to parse this result without any problems, but if the quotes can not be included in the result, then you would need to trim the spaces off of the message. This is an example of trimming the "City" value.
for (var i = 1; i <= message.getRowCount(); i++) {
message.setNode('City[' + i + ']', StringUtils.trim(message.getNode('City[' + i + ']')));
}
Using the above script the result is now:
Name,Address,City,State,Zip
Ben,123 N 5600 W,Kaysville,UT,84405
You will notice that the value Kaysville is no longer lead with a space.