I found this issue on a WordPress site which which makes use of the Roots Trellis and Bedrock tools (https://roots.io/). By default the config/environments/staging.php and production.php files have this line in them:
As detailed in the WP Codex (https://codex.wordpress.org/Editing_wp-config.php#Disable_Plugin_and_Theme_Update_and_Installation), this will block users being able to use the plugin and theme installation/update functionality from the WordPress admin area.
The default Trellis development.php doesn’t have this config setting in there, so it’s only when you deploy to staging/production that you’ll see the issue.
Might save someone a few minutes reading this!