Since you did not specify what you are going to do with the list (I believe it is only for display, but the same logic applies to other structures - checkboxes, for example), there are several possible solutions (assuming that getVendersPorZona returns a list of String). In the examples, I'm using the outputText of your question for didactic purposes:
By Repeat (allows greater flexibility, not being restricted to a specific output):
<p:dialog header="#{zona.nome}" widgetVar="vendedores" minHeight="40">
<ui:repeat value="#{zonaBean.getVendedoresPorZona(zona.id)}" var="v">
<h:outputText value="#{v}"/><br />
</ui:repeat>
</p:dialog>
By Repeat of Primefaces:
<p:dialog header="#{zona.nome}" widgetVar="vendedores" minHeight="40">
<p:repeat value="#{zonaBean.getVendedoresPorZona(zona.id)}" var="v">
<h:outputText value="#{v}"/><br />
</p:repeat>
</p:dialog>
By Datafist of Primefaces:
<p:dialog header="#{zona.nome}" widgetVar="vendedores" minHeight="40">
<p:dataList value="#{zonaBean.getVendedoresPorZona(zona.id)}" var="v" itemType="disc">
<h:outputText value="#{v}"/>
</p:dataList>
</p:dialog>
By DataTable of Primefaces (useful when having an object with multiple attributes):
<p:dialog header="#{zona.nome}" widgetVar="vendedores" minHeight="40">
<p:dataTable value="#{zonaBean.getVendedoresPorZona(zona.id)}" var="v">
<p:column headerText="Vendedor">
<h:outputText value="#{v}"/>
</p:column>
</p:dataTable>
</p:dialog>
By ForEach (formerly exemplified by @ arthur-vidal):
<p:dialog header="#{zona.nome}" widgetVar="vendedores" minHeight="40">
<c:forEach var="v" items="${zonaBean.getVendedoresPorZona(zona.id)}">
<h:outputText value="#{v}"/><br />
</c:forEach>
</p:dialog>