I use code like in your second example. I don't really have any strong reasons. Sure, functional programming is cool but bindActionCreators seems unnecessary to me; and sometimes the action isn't as straight forward as passing in the parameter (id in your example).
But also, I write in an ES6 style because it's slightly more compact:
const mapDispatchToProps = dispatch => ({
onDeleteFlashMessage: id => dispatch(deleteFlashMessage(id))
})