Got a response from the product team: this is a known issue—Fabric doesn't support service principals yet. The team is working on it, but there's no timeline for a fix.
So to everyone who downvoted: this is an actual limitation with the product, and your downvotes didn’t make it magically go away. I’m still not sure what the point of those downvotes was.