Docks suggest that top-level dynamic routes will work fine. Check out the _slug folder in the example.
So, the following folder structure works:
pages
--| _product/
-----| index.vue
And in your index.vue you'll have access to product param via $route object (check this answer for more details), so, it can contain something like this:
<!-- pages/_product/index.vue -->
<template>
    <div class="flex items-center justify-center text-center py-20">
        {{ $route.params.product }}
    </div>
</template>
<script>
export default {}
</script>
I've tested this and it works. If having this set-up you'll go to www.mysite.com/shampoo/ you'll see shampoo appearing on the screen, if you'll go to www.mysite.com/r2-d2/ you'll see r2-d2 and so on.