get_posts not pulling the correct number of posts

As stated in comments

Most probably your posts per page setting for your site is less than 10

One have to remember, get_posts uses WP_Query. Any new instance of WP_Query and the main query (which also uses WP_Query) uses the value set for Blog pages show at most as default for the posts_per_page parameter when this parameter is not explicitly set by the user