In Dijkstra's do-od construct using guarded command we state that the selection of guards is nondeterministic. Can we write logical expression(s) to describe this statement? Can probabilistic logic solve this problem?
You may want to look at the "unified theories of programming" (UTP, originally by Tony Hoare and He Jifeng, now extended to an ever broader range of programming concepts by Jeff Sanders, Andrew Butterfield, and many more) and their precursors by Eric Hehner ("Predicative Programming") and Tony Hoare ("Programs are Predicates"). These explain how such concepts like non-deterministic choice can be given a predicative semantics.
I will go read the UTP book, but this answer made me wonder about the kind of restricted non-determinism we see in Petri nets: we can have enabled transitions P or Q firing, but not both, and that doesn't seem quite like logical disjunction, which presumably also allows P and Q in addition to P alone and Q alone
As UTP-style semantics specify, a.o., the post states (or actually, a pre-post relation), the situation that both P and Q fire can hardly ever arise when specifying the semantics as P or Q, as this would require equivalent post states for P and Q. While such situtaions certainly can arise when only considering the plain process state, they can be avoided by appropriate state encoding and vanish when adding history-recording derived states to the predicative semantics, like recorded traces. Those derived states may not be particularly elegant, but resolve the issue.