Any chance you're using a 9.3 configuration file instead of the one
generated by initdb? dynamic_shared_memory_type defaults to 'posix' if not specified in the config file (on platforms supporting it). If initdb detects that 'posix' can't be used it'll emit a different value. If you're copying the config from 9.3 and your environment doesn't support posix shm that'll cause the above error. I still think dynamic_shared_memory_type should default to 'none' because of such problems.
It works with 'none' and 'sysv'--I think the issue is that technically our environment does support 'posix', but '/dev/shm' is indeed not mounted in the LXC container, leading to a discrepancy between what initdb decides and what's actually possible. Thanks for your help.