Efter att ha lekt med saker insåg jag vad problemet är:field.types
måste vara en NAMED lista vektor, inte bara en lista; dessutom får inte radnamnen inkluderas annars behöver vi tre fälttyper. För exemplet ovan fungerar följande bra:
dbWriteTable(con, name="table_name", value=df,
field.types = c(dte="date", val="double(20,10)"), row.names=FALSE)