WP Pages: Add checkbox, save and display

Why are you using $_REQUEST[‘featured-page’]? Your input name is _featured-page and you should use $_POST not $_REQUEST.

Try something like this.

add_action("admin_init", "register_post_assets");

function register_post_assets(){
    add_meta_box('featured-page', __('Featured Page'), 'add_featured_meta_box', 'page', 'advanced', 'high');
}

function add_featured_meta_box( $post ){
    global $post;

    $custom = get_post_custom($post->ID);
    $_featured-page = $custom["_featured-page"][0];
    ?>

    <label>Featured Page</label>

    <?php

    $is_featured = get_post_meta($post->ID, '_featured-page', true);
    $checked = ($is_featured == "yes") ? 'checked="checked"' : null; ?>

    <input type="checkbox" name="_featured-page" value="yes" <?php echo $checked; ?> />
    <?php
}

add_action('save_post', 'save_featured_meta');
function save_featured_meta( $post_id ){
    global $post;

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return $post_id;
    }

    update_post_meta( $post_id, "_featured-page", $_POST["_featured-page"]);
}