Answer
This can indicate the deploying user/session doesn't have privilege to create a table in the database — a normal (materialized) IAL needs to create its own backing table, and a lack of that privilege surfaces as a deployment error even though the underlying SELECT itself is perfectly valid SQL. If creating the materialized table isn't actually necessary for your use case, toggle 'Create IAL for Live Data Only' (the online/live-data-access-only mode) when creating the IAL — that mode doesn't need table-creation privileges and deploys successfully even when the standard materialized-IAL path fails for this reason.