I can’t figure out what’s wrong with this statement. $wpdb->query update

Without an error message, it is difficult to tell the exact problem. It is important to debug within WordPress and check your webserver error logs.

One problem is your call of prepare(). The method takes 2 or more arguments, you only passed 1. Instead try the following

$update_status = $wpdb->query($wpdb->prepare(
    "UPDATE {$wpdb->prefix}wcpv_commissions SET commission_status = %s WHERE vendor_id = %d AND order_date BETWEEN %s AND %s",
    $status,
    $vendor_id,
    $date1,
    $date2
));