By default, bulk shares run by querying for records from the selected table in 1000 record increments, with records ordered by sys_id in ascending order. This is done in order to minimize impact on the ServiceNow instance, however in cases where you are sharing database views, these records do not have sys_ids and thus cannot be shared in this manner.
In v3.11.0, database views are shared properly by querying for all records from the view at once. Note that for this option to work properly, you will need to specify the glide.db.max_view_records integer system property to a number above the records in your view. If this property is not set, it defaults to 10,000. A good number to use is 999999.