Get category of post inside save_post hook

Your code calls get_the_category() but it doesn’t use the value returned.

// ...
if ( isset( $_POST['img-destacada'] ) ) {
    $categories = get_the_category($post_id);
    $img = '';
    // $categories should contain either an array of WP_Term objects,
    // or an empty array.
    if ( ! empty( $categories ) ) {
        // Here I've used the slug of the first item in the array to set the $img.
        // You may have other logic you want to use.
        $img = $categories[0]->slug . '.jpg'; 
    }
    if ( ! empty( $img ) ) {
        // Checks to make sure there's an $img set.
        update_post_meta($post_id, "img-destacada", $img);
    }
}
// ...

References