How to remove menu from WP-Admin menu

In this case, the issue is due to the queue order. You should change the priority of the execution of your add_action hook to something large, to ensure that it executes as late as possible. add_action‘s 3rd argument is the priority represented by an integer. Lower #’s gain priority in execution over higher #’s.

add_action( 'admin_menu', 'remove_menus', 999999 );

It’s likely that the theme you’re trying to hide the options page for doesn’t have it’s execution priority that low and therefore the hook will have been created before your add action argument is fired.