How can I prevent specific WordPress Menu Items from appearing to certain User Profiles?

Solution:

You can use admin_init hook for remove menu :

   add_action('admin_init','remove_admin_menu_links');

function remove_admin_menu_links (){
$user = wp_get_current_user();

    if( $user && isset($user->user_email) && 'name@domain.com' == $user->user_email ) {

        remove_menu_page('index.php'); // WordPress Dashoboard                                
        remove_menu_page('edit.php?post_type=shop_order.php');  // WooCommerce   
        remove_menu_page('admin.php?page=vc-welcome');        // Visual Composer
        }
    }

For debug under this function add following line

function remove_admin_menu_links (){
$user = wp_get_current_user();

    if( $user && isset($user->user_email) && 'name@domain.com' == $user->user_email ) {
       echo '<pre>';
       print_r($_GLOBALS['menu']);
        }
    }

By using above code you will see list of all all menu. Thanks