These already exist, eg. Idex and other distributed exchanges.
People use them - Idex is one of the most-used Ethereum dApps - but they suffer from ease-of-use problems. Either you go through a web interface (which defeats the purpose of them being decentralized, since you have to trust the website you're making the trades on) or you put up with the hassle of sending individual transactions to smart contracts with your Ethereum wallet, which is pretty error-prone for most ordinary users.
People use them - Idex is one of the most-used Ethereum dApps - but they suffer from ease-of-use problems. Either you go through a web interface (which defeats the purpose of them being decentralized, since you have to trust the website you're making the trades on) or you put up with the hassle of sending individual transactions to smart contracts with your Ethereum wallet, which is pretty error-prone for most ordinary users.