It's because that statement can't be safely replicated across to another database because there is no way of guaranteeing that the delete statement will delete the same rows in the replicated database.
You should find that setting your binlog replication to mixed fixes it.