Remove dashicons.min.css conditionally

Try this.

add_action( 'wp_enqueue_scripts', 'go_dequeue_dashicons' );
function go_dequeue_dashicons() {
    if ( ! is_user_logged_in() && !is_page( array( 9, 10 ) ) && !in_category( array( 29, 2 ) ) ) {
        wp_deregister_style( 'dashicons' );
    }
}

I basically just combined the IF statements and changed || to &&.