I've worked on two projects where DBT is used to transform data between bronze(raw) silver(refined) and gold(serving) layers. I know that cloud Dataprep can be also used to transform data between layers and prepare it for visualization and ML/AI.
So what are the differences between using these two in terms of skills, budget, ease of use, and setup, what are use cases where one can't be substituted with the other?
The more direct analogue to what DBT does is a different GCP service called Dataform. Both of these services can be used to execute version controlled, templated SQL queries to transform data in stages. To use them you need to have a good understanding of your data so that you know what transformations are appropriate.
My understanding is that DataPrep is a fully fledged data exploration and manipulation took; it's more for working with data that you don't yet understand and transforming it for use.