ACF relationship field outputting unpublished content [closed]

Use get_post_status to check the status of a post.

if( get_post_status( $holiday->ID ) == 'publish' ){
    echo 'This is a published post';
}

Also note that your use of setup_postdata is incorrect here. It is required to pass the global $post var to the function, otherwise any template function that relies on the global $post will output incorrect data. That said, you aren’t using any of those functions, as you are using versions that allow passing of an explicit post ID, so you can just remove setup_postdata as well as wp_reset_postdata.