Update all posts in custom post types with wp_cron()?

Yeah, you can schedule a WP cron job to loop through all posts of a post type and perform the check / add the term. Wouldn’t recommend that for a very big page with thousands of posts though.

In example below the scheduled job would run approximately once a day – remember that wp cron is not very accurate, it schedules next task only when your site has been visited (see more in this question)

// Scheduled job callback
function run_update_tax_cron_job( ) {
    $posts = get_posts( [
        'post_type' => 'your-post-type-slug',
        'posts_per_page' => -1, // getting all posts of a post type
        'no_found_rows' => true, //speeds up a query significantly and can be set to 'true' if we don't use pagination
        'fields' => 'ids', //again, for performance
    ] );

    //now check meta and update taxonomy for every post
    foreach( $posts as $post_id ){
        $meta_value = get_post_meta( $post->ID, 'new_used_cat', true ); 
        $new_term = ! empty( $meta_value ) ? 'used' : 'new';
        wp_set_object_terms( $post_id, $new_term ,'vehicle_condition', 
    false);
    }
}

// Schedule Cron Job Event
function udpdate_taxonomy_cron_job() {
    if ( ! wp_next_scheduled( 'run_update_tax_cron_job' ) ) {
        wp_schedule_event( current_time( 'timestamp' ), 'daily', 'run_update_tax_cron_job' );
    }
}
add_action( 'wp', 'udpdate_taxonomy_cron_job' );