Quite random, but it turns out there were a few lines missing from the wp-config.php file from the previous host.

When trying to upload anything or update a plugin or theme, I got the page asking for my FTP information. I knew something was wrong because I was on GoDaddy’s Managed WordPress Hosting and it’s been great and I shouldn’t need to do that kind of thing. But it was happening.

Got on the phone with help and they couldn’t find anything wrong either. In the end, they added a few lines that had to do with permissions that fixed it.

Here you go, for your head-scratching pleasure:

define( ‘FS_METHOD’, ‘direct’);
define(‘FS_CHMOD_DIR’, (0705 & ~ umask()));
define(‘FS_CHMOD_FILE’, (0604 & ~ umask()));

For the record, we had just moved hosts, so the wp-config.php file wasn’t created from scratch but was from the old hosting.